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.
Otorgar AWS Resilience Hub acceso a los recursos de su clúster de Amazon EKS
AWS Resilience Hub le permite acceder a los recursos ubicados en los clústeres de Amazon EKS siempre que haya configurado los permisos necesarios.
Para conceder los permisos necesarios AWS Resilience Hub para descubrir y evaluar los recursos del clúster Amazon EKS
-
Configure un rol de IAM para acceder al clúster de Amazon EKS.
Si ha configurado la aplicación mediante el acceso basado en roles, puede omitir este paso y continuar con el paso 2 y usar el rol que utilizó para crear la aplicación. Para obtener más información acerca de cómo AWS Resilience Hub utiliza roles de IAM, consulte Cómo funciona AWS Resilience Hub con IAM.
Si ha configurado la aplicación con los permisos de usuario de IAM actuales, debe crear el rol de IAM
AwsResilienceHubAssessmentEKSAccessRole
en la misma cuenta que la del clúster de Amazon EKS. Este rol de IAM se utilizará entonces al acceder a su clúster de Amazon EKS.Al importar y evaluar su aplicación, AWS Resilience Hub utiliza una función de IAM para acceder a los recursos de su clúster de Amazon EKS. Esta función debe crearse en la misma cuenta que su clúster de Amazon EKS y se asignará a un grupo de Kubernetes que incluya los permisos necesarios AWS Resilience Hub para evaluar su clúster de Amazon EKS.
Si su clúster de Amazon EKS está en la misma cuenta que la cuenta de AWS Resilience Hub llamada, el rol debe crearse mediante la siguiente política de confianza de IAM. En esta política de confianza de IAM,
caller_IAM_role
se utiliza en la cuenta corriente para solicitar las API. AWS Resilience Hubnota
caller_IAM_role
Es el rol que está asociado a su cuenta AWS de usuario.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/caller_IAM_role" }, "Action": "sts:AssumeRole" } ] }
Si su clúster de Amazon EKS está en una cuenta cruzada (una cuenta diferente AWS Resilience Hub a la cuenta de llamada), debe crear el rol de
AwsResilienceHubAssessmentEKSAccessRole
IAM mediante la siguiente política de confianza de IAM:nota
Como requisito previo, para acceder al clúster de Amazon EKS que está desplegado en una cuenta diferente a la cuenta del AWS Resilience Hub usuario, debe configurar el acceso a varias cuentas. Para obtener más información, consulte
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
-
Cree
ClusterRole
ClusterRoleBinding
(oRoleBinding
) roles para la AWS Resilience Hub aplicación.Creando
ClusterRole
yClusterRoleBinding
concediendo los permisos de solo lectura necesarios AWS Resilience Hub para analizar y evaluar los recursos que forman parte de determinados espacios de nombres de su clúster de Amazon EKS.AWS Resilience Hub le permite limitar su acceso a sus espacios de nombres para generar evaluaciones de resiliencia realizando una de las siguientes acciones:
-
Conceder a la aplicación de AWS Resilience Hub acceso de lectura a todos los espacios de nombres.
AWS Resilience Hub Para evaluar la resiliencia de los recursos en todos los espacios de nombres de un clúster de Amazon EKS, debe crear los siguientes y.
ClusterRole
ClusterRoleBinding
-
resilience-hub-eks-access-cluster-role
(ClusterRole
): define los permisos necesarios AWS Resilience Hub para evaluar su clúster de Amazon EKS. -
resilience-hub-eks-access-cluster-role-binding
(ClusterRoleBinding
): define un grupo denominadoresilience-hub-eks-access-group
en su clúster de Amazon EKS que concede a sus usuarios los permisos necesarios para ejecutar evaluaciones de resiliencia en AWS Resilience Hub.
La plantilla para conceder a la aplicación de AWS Resilience Hub acceso de lectura en todos los espacios de nombres es la siguiente:
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 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 verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates 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
-
-
AWS Resilience Hub Otorga el acceso para leer espacios de nombres específicos.
Puede limitar el acceso AWS Resilience Hub a los recursos dentro de un conjunto específico de espacios de nombres utilizando.
RoleBinding
Para ello, debe crear los siguientes roles:-
ClusterRole
— Para acceder AWS Resilience Hub a los recursos en espacios de nombres específicos dentro de un clúster de Amazon EKS y evaluar su resiliencia, debe crear las siguientes funciones.ClusterRole
-
resilience-hub-eks-access-cluster-role
: especifica los permisos necesarios para evaluar los recursos dentro de espacios de nombres específicos. -
resilience-hub-eks-access-global-cluster-role
— Especifica los permisos necesarios para evaluar los recursos con ámbito de clúster, que no están asociados a un espacio de nombres específico, dentro de sus clústeres de Amazon EKS. AWS Resilience Hub requiere permisos para acceder a los recursos del ámbito del clúster (como los nodos) de su clúster de Amazon EKS a fin de evaluar la resiliencia de la aplicación.
La plantilla para crear el rol de
ClusterRole
es la siguiente: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 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 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: resilience-hub-eks-access-global-cluster-role rules: - apiGroups: - "" resources: - nodes verbs: - get - list - apiGroups: - karpenter.sh resources: - provisioners verbs: - get - list - apiGroups: - karpenter.k8s.aws resources: - awsnodetemplates verbs: - get - list --- EOF
-
-
RoleBinding
rol: este rol otorga los permisos necesarios para acceder AWS Resilience Hub a los recursos dentro de espacios de nombres específicos. Es decir, debes crear unRoleBinding
rol en cada espacio de nombres para poder acceder AWS Resilience Hub a los recursos dentro del espacio de nombres determinado.nota
Si utiliza
ClusterAutoscaler
para el ajuste de escala automático, también debe crearRoleBinding
en elkube-system
. Esto es necesario para evaluar suClusterAutoscaler
, que forma parte del espacio de nombres dekube-system
.De este modo, concederá AWS Resilience Hub los permisos necesarios para evaluar los recursos dentro del espacio de
kube-system
nombres mientras evalúa su clúster de Amazon EKS.La plantilla para crear el rol de
RoleBinding
es la siguiente:cat << EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: resilience-hub-eks-access-cluster-role-binding namespace: <namespace> 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
-
ClusterRoleBinding
rol: este rol otorga los permisos necesarios para acceder AWS Resilience Hub a los recursos del ámbito del clúster.La plantilla para crear el rol de
ClusterRoleBinding
es la siguiente:cat << EOF | kubectl apply -f - --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: resilience-hub-eks-access-global-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-global-cluster-role apiGroup: rbac.authorization.k8s.io --- EOF
-
-
-
Actualice
aws-auth ConfigMap
para asignar elresilience-hub-eks-access-group
al rol de IAM utilizado para acceder al clúster de Amazon EKS.Este paso crea una asignación entre el rol de IAM utilizado en el paso 1 y el grupo de Kubernetes creado en el paso 2. Esta asignación otorga permisos a los roles de IAM para acceder a los recursos del clúster de Amazon EKS.
nota
-
ROLE-NAME
hace referencia al rol de IAM que se utiliza para acceder al clúster de Amazon EKS.-
Si la aplicación está configurada para usar el acceso basado en roles, el rol debe ser el rol de invocador o el rol de cuenta secundaria al que se transfiere al crear la aplicación. AWS Resilience Hub
-
Si su aplicación está configurada para utilizar el usuario de IAM actual para acceder a los recursos, debe ser el de
AwsResilienceHubAssessmentEKSAccessRole
.
-
-
ACCOUNT-ID
debe ser el ID de AWS cuenta del clúster de Amazon EKS.
Puede crear el
aws-auth
ConfigMap
utilizando una de las siguientes maneras:-
Uso de
eksctl
Use el siguiente comando para actualizar el
aws-auth
ConfigMap
:eksctl create iamidentitymapping \ --cluster <cluster-name> \ --region=<region-code> \ --arn arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>\ --group resilience-hub-eks-access-group \ --username AwsResilienceHubAssessmentEKSAccessRole
-
Puede editar manualmente
aws-auth
ConfigMap
añadiendo los datos del rol de IAM a la secciónmapRoles
de los datos secundarios deConfigMap
. Utilice el siguiente comando para editar el archivoaws-auth
ConfigMap
.kubectl edit -n kube-system configmap/aws-auth
La sección
mapRoles
consta de los siguientes parámetros:-
rolearn
: el nombre de recurso de Amazon (ARN) del rol de IAM que se agregará.-
Sintaxis del ARN:
arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>
.
-
-
username
: nombre del usuario de Kubernetes al que se mapea el rol de IAM (AwsResilienceHubAssessmentEKSAccessRole
). -
groups
: los nombres de los grupos deben coincidir con los nombres de los grupos creados en el Paso 2 (resilience-hub-eks-access-group
).
nota
Si la sección
mapRoles
no existe, debe añadirla manualmente.Utilice la siguiente plantilla para añadir la información del rol de IAM a la sección
mapRoles
de los datos secundarios deConfigMap
.- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME> username: AwsResilienceHubAssessmentEKSAccessRole
-
-