View a markdown version of this page

Permisos y funciones de IAM necesarios - 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.

Permisos y funciones de IAM necesarios

AWS política administrada

Puede adjuntar la AWSResilienceHubV2AssessmentExecutionPolicy a las identidades de IAM. Al ejecutar una evaluación, esta política otorga permisos de acceso de solo lectura a otros AWS servicios para el descubrimiento, la evaluación y la administración de la resiliencia. Para obtener más detalles acerca de los permisos incluidos en esta política, consulte AWSResilienceHubV2AssessmentExecutionPolicy.

nota

AWSResilienceHubV2AssessmentExecutionPolicySustituye al anterior AWSResilienceHubAsssessmentExecutionPolicy para su uso por el de la próxima generación de Resilience Hub.

Si utilizas pruebas de resiliencia, adjunta también la política AWSResilienceHubResilienceTestingPolicy gestionada. Esta política otorga a Resilience Hub los AWS Fault Injection Service (AWS FIS) permisos necesarios para iniciar y gestionar experimentos en tu nombre. Para obtener más detalles acerca de los permisos incluidos en esta política, consulte AWSResilienceHubResilienceTestingPolicy.

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.

El papel de la 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 asumir una función de IAM con los permisos necesarios. Este rol descubre y lee la configuración de sus AWS recursos y, cuando las pruebas de resiliencia están habilitadas, inicia y administra AWS FIS los experimentos en su nombre.

Hay dos maneras de crear o configurar este rol:

  • Crear un nuevo rol de servicio (recomendado): al crear o editar un servicio en la consola de próxima generación de Resilience Hub, puede elegir Crear nuevo rol en el modelo de permisos. La consola crea automáticamente un rol de IAM con la política de confianza correcta y adjunta la política AWSResilienceHubV2AssessmentExecutionPolicy administrada.

  • Use un rol de servicio existente: si ya tiene un rol configurado o si prefiere crear roles fuera de la consola, elija Usar un rol de servicio existente. A continuación, elija el rol de la lista y asegúrese de que tenga la política de confianza y los permisos necesarios que se describen a continuación.

Crear el rol manualmente

Para crear el rol manualmente, abra la consola de 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. Si utilizas pruebas de resiliencia, adjunta también la política AWSResilienceHubResilienceTestingPolicy gestionada.

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" } ] }

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"