View a markdown version of this page

Referencia de roles y permisos de IAM - AWS Centro de resiliencia

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 del IAM en la evaluación y las pruebas de resiliencia

Para realizar una evaluación o una prueba de resiliencia, la próxima generación de Resilience Hub debe poder asumir una función de IAM. Las evaluaciones requieren permisos de solo lectura para descubrir y comprender la configuración de sus recursos. AWS Las pruebas de resiliencia también requieren permisos para iniciar y gestionar AWS Fault Injection Service (AWS FIS) experimentos en tu nombre.

Puede crear un rol de IAM en la consola de AWS IAM. Elija una política de confianza personalizada y utilice una política de confianza como la siguiente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "resiliencehub.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }

Para los permisos, adjunte la política AWSResilienceHubV2AssessmentExecutionPolicy gestionada. Esta política otorga acceso de solo lectura a AWS los servicios para el descubrimiento, la evaluación y la administración de la resiliencia.

nota

AWSResilienceHubV2AssessmentExecutionPolicySustituye al anterior AWSResilienceHubAsssessmentExecutionPolicy para su uso por el de la próxima generación de Resilience Hub. Para obtener más detalles acerca de los permisos incluidos en esta política, consulte AWSResilienceHubV2AssessmentExecutionPolicy.

Si utilizas pruebas de resiliencia, adjunta también la política AWSResilienceHubResilienceTestingPolicy gestionada. Esta política otorga a Resilience Hub los AWS FIS permisos necesarios para iniciar y gestionar experimentos en tu nombre.

nota

Si la política gestionada no está disponible en tu cuenta, crea una política integrada con los mismos permisos. Para ver el contenido de la política, consulteAWSResilienceHubResilienceTestingPolicy.

Función de IAM Service-Linked

La próxima generación de Resilience Hub crea automáticamente un Service-Linked rol con la política AWSResilienceHubServiceRolePolicy administrada.

Permisos de acceso a los archivos estatales de Terraform

Si va a incluir los archivos de estado de Terraform en su servicio Resilience Hub de próxima generación, conceda permisos para leer los archivos de Terraform desde 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" } ] }

Función de ejecución de IAM para las pruebas de resiliencia

Las pruebas de resiliencia se ejecutan bajo una función de IAM que AWS Fault Injection Service supone inyectar errores en sus recursos. Los permisos necesarios dependen de la plantilla de prueba, y las pruebas de una sola cuenta y de varias cuentas utilizan estructuras de roles diferentes. Para ver las políticas de confianza y permisos de cada prueba, consulte. Funciones de ejecución de IAM para las pruebas de resiliencia

Permisos de Amazon EKS

Si va a incluir clústeres de Amazon EKS en su servicio de Resilience Hub de próxima generación, siga el siguiente proceso de 3 pasos para conceder 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 Resilience Hub de última generación 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: Asigne la función de IAM al grupo de Kubernetes

Asigne el rol de IAM que creó al grupo de Kubernetes. resilience-hub-eks-access-group Puede utilizar las entradas de acceso de Amazon EKS (recomendado) o las. aws-auth ConfigMap

Opción A: usar las entradas de acceso de EKS (recomendado)

Las entradas de acceso EKS son el método preferido para administrar la autenticación de clústeres. El clúster debe utilizar el modo de API_AND_CONFIG_MAP autenticación API o.

aws eks create-access-entry \ --cluster-name cluster-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 el modo de API_AND_CONFIG_MAP autenticación CONFIG_MAP o, puede editar el aws-auth en su lugar: ConfigMap

Con eksctl:

eksctl create iamidentitymapping \ --cluster cluster-name \ --region region \ --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 esto 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 de RBAC existen y que la asignación de funciones está establecida:

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-name cluster-name \ --principal-arn arn:aws:iam::ACCOUNT-ID:role/ResilienceHubRole

Si usa aws-auth ConfigMap (opción B):

kubectl get configmap aws-auth -n kube-system -o yaml | grep -A 3 "ResilienceHubRole"