Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Referencia de roles y permisos de IAM
El papel de la IAM en la evaluación
Para poder realizar una evaluación, la próxima generación de Resilience Hub debe poder asumir una función de IAM con una serie de permisos de solo lectura para descubrir y comprender la configuración de sus recursos. AWS
Puede crear un rol de IAM en la consola de IAM. AWS Elija una política de confianza personalizada y utilice una política de confianza como esta:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resiliencehub.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
Para los permisos, elige la política AWSResilienceHubAsssessmentExecutionPolicy gestionada y la política ReadOnlyAccess gestionada. La ReadOnlyAccess política es necesaria para obtener el mejor rendimiento de la evaluación del modo de fallo.
Función de IAM Service-Linked
Resilience Hub, de última generación, crea automáticamente un Service-Linked rol con la política AWSResilienceHubServiceRolePolicy gestionada. Esta función solo es necesaria para el soporte de AWS Organizations.
Permisos estatales de acceso a los archivos de Terraform
Si va a incluir archivos de estado de Terraform en su servicio Resilience Hub de próxima generación, otorgue permisos para leer los archivos de Terraform de su bucket de Amazon S3 con una política como la siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::s3-bucket-name/path-to-state-file" }, { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::s3-bucket-name" } ] }
Permisos de Amazon EKS
Si va a incluir clústeres de Amazon EKS en su servicio Resilience Hub de próxima generación, siga el siguiente proceso de 3 pasos para proporcionar permisos a Resilience Hub de próxima generación para leer los datos de configuración de sus clústeres de Amazon EKS mediante el control de acceso basado en roles (RBAC) de Kubernetes.
Paso 1: aplique lo siguiente a su clúster de Amazon EKS
Esto otorga a la próxima generación de Resilience Hub acceso de solo lectura a los recursos de Kubernetes que necesita en todos los espacios de nombres:
cat << EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: resilience-hub-eks-access-cluster-role rules: - apiGroups: - "" resources: - pods - replicationcontrollers - nodes - services verbs: - get - list - apiGroups: - apps resources: - deployments - replicasets verbs: - get - list - apiGroups: - policy resources: - poddisruptionbudgets verbs: - get - list - apiGroups: - autoscaling.k8s.io resources: - verticalpodautoscalers verbs: - get - list - apiGroups: - autoscaling resources: - horizontalpodautoscalers verbs: - get - list - apiGroups: - karpenter.sh resources: - provisioners - nodepools verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates - ec2nodeclasses verbs: - get - list --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: resilience-hub-eks-access-cluster-role-binding subjects: - kind: Group name: resilience-hub-eks-access-group apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: resilience-hub-eks-access-cluster-role apiGroup: rbac.authorization.k8s.io --- EOF
Paso 2: Asignar la función de IAM al grupo Kubernetes
Asigne la función de IAM que creó al grupo de Kubernetes. resilience-hub-eks-access-group Puede utilizar las entradas de acceso de Amazon EKS (recomendadas) o las aws-auth ConfigMap.
Opción A: usar entradas de acceso EKS (recomendado)
Las entradas de acceso EKS son el método preferido para gestionar la autenticación de clústeres. El clúster debe usar nuestro API modo API_AND_CONFIG_MAP de autenticación.
aws eks create-access-entry \ --cluster-namecluster-name\ --principal-arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole \ --type STANDARD \ --kubernetes-groups '["resilience-hub-eks-access-group"]'
Opción B: usar aws-auth ConfigMap
Si su clúster usa CONFIG_MAP nuestro modo de API_AND_CONFIG_MAP autenticación, puede editar aws-auth en su lugar: ConfigMap
Usando eksctl:
eksctl create iamidentitymapping \ --clustercluster-name\ --regionregion\ --arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole \ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole
O edite manualmente: ConfigMap
kubectl edit -n kube-system configmap/aws-auth
Añada lo siguiente mapRoles en la sección de datos:
- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole username: AwsResilienceHubAssessmentEKSAccessRole
Paso 3: Verificar
Confirme que los recursos del RBAC existen y que la asignación de funciones está implementada:
kubectl get clusterrole resilience-hub-eks-access-cluster-role kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding
Si utiliza entradas de acceso (opción A):
aws eks describe-access-entry \ --cluster-namecluster-name\ --principal-arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole
Si utiliza aws-auth ConfigMap (opción B):
kubectl get configmap aws-auth -n kube-system -o yaml | grep -A 3 "ResilienceHubRole"