As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Concedendo AWS Resilience Hub acesso a recursos em seu cluster Amazon EKS
AWS Resilience Hub permite que você acesse recursos localizados nos clusters do Amazon EKS, desde que você tenha configurado as permissões necessárias.
Conceder as permissões necessárias AWS Resilience Hub para descobrir e avaliar recursos dentro do cluster Amazon EKS
-
Configure um perfil do IAM para acessar o cluster do Amazon EKS.
Se você configurou seu aplicativo usando o acesso baseado em função, você pode pular esta etapa e prosseguir para a etapa 2 e usar a função que você usou para criar o aplicativo. Para obter mais informações sobre como o AWS Resilience Hub usa os perfis do IAM, consulte Como o AWS Resilience Hub funciona com o IAM.
Se você configurou seu aplicativo usando as permissões atuais de usuário do IAM, você deve criar um perfil do IAM
AwsResilienceHubAssessmentEKSAccessRole
na mesma conta do cluster do Amazon EKS. Esse perfil do IAM será então usado ao acessar seu cluster do Amazon EKS.Ao importar e avaliar seu aplicativo, AWS Resilience Hub usa uma função do IAM para acessar os recursos em seu cluster Amazon EKS. Essa função deve ser criada na mesma conta do seu cluster Amazon EKS e será mapeada com um grupo Kubernetes que inclui as permissões exigidas AWS Resilience Hub para avaliar seu cluster Amazon EKS.
Se o seu cluster Amazon EKS estiver na mesma conta da conta de AWS Resilience Hub chamada, a função deverá ser criada usando a seguinte política de confiança do IAM. Nessa política de confiança do IAM,
caller_IAM_role
é usada na conta corrente para a qual chamar as APIs. AWS Resilience Hubnota
Essa
caller_IAM_role
é a função associada à sua conta de AWS usuário.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/caller_IAM_role" }, "Action": "sts:AssumeRole" } ] }
Se o seu cluster Amazon EKS estiver em uma conta cruzada (uma conta diferente da conta de AWS Resilience Hub chamada), você deverá criar a função do
AwsResilienceHubAssessmentEKSAccessRole
IAM usando a seguinte política de confiança do IAM:nota
Como pré-requisito, para acessar o cluster Amazon EKS que é implantado em uma conta diferente da conta do AWS Resilience Hub usuário, você deve configurar o acesso de várias contas. Para obter mais informações, consulte
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::eks_cluster_account_id:role/AwsResilienceHubExecutorRole" }, "Action": "sts:AssumeRole" } ] }
-
Crie
ClusterRole
eClusterRoleBinding
(ouRoleBinding
) funções para o AWS Resilience Hub aplicativo.ClusterRoleBinding
CriaráClusterRole
e concederá as permissões de somente leitura necessárias AWS Resilience Hub para analisar e avaliar recursos que fazem parte de determinados namespaces em seu cluster Amazon EKS.AWS Resilience Hub permite que você limite o acesso aos seus namespaces para gerar avaliações de resiliência preenchendo uma das seguintes opções:
-
Conceda acesso de leitura em todos os namespaces ao aplicativo do AWS Resilience Hub .
AWS Resilience Hub Para avaliar a resiliência dos recursos em todos os namespaces em um cluster do Amazon EKS, você deve criar o seguinte e.
ClusterRole
ClusterRoleBinding
-
resilience-hub-eks-access-cluster-role
(ClusterRole
) — Define as permissões necessárias AWS Resilience Hub para avaliar seu cluster Amazon EKS. -
resilience-hub-eks-access-cluster-role-binding
(ClusterRoleBinding
): define um grupo nomeado deresilience-hub-eks-access-group
em seu cluster do Amazon EKS, concedendo a seus usuários as permissões necessárias para executar avaliações de resiliência no AWS Resilience Hub.
O modelo para conceder acesso de leitura em todos os namespaces ao aplicativo do AWS Resilience Hub é o seguinte:
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
-
-
Concedendo AWS Resilience Hub acesso para ler namespaces específicos.
Você pode limitar o acesso AWS Resilience Hub a recursos dentro de um conjunto específico de namespaces usando.
RoleBinding
Para isso, você deve criar as seguintes funções:-
ClusterRole
— AWS Resilience Hub Para acessar os recursos em namespaces específicos dentro de um cluster do Amazon EKS e avaliar sua resiliência, você deve criar as seguintes funções.ClusterRole
-
resilience-hub-eks-access-cluster-role
: especifica as permissões necessárias para avaliar os recursos em namespaces específicos. -
resilience-hub-eks-access-global-cluster-role
— Especifica as permissões necessárias para avaliar recursos com escopo de cluster, que não estão associados a um namespace específico, em seus clusters do Amazon EKS. AWS Resilience Hub exige permissões para acessar recursos com escopo de cluster (como nós) em seu cluster Amazon EKS para avaliar a resiliência do seu aplicativo.
O modelo para criar a função
ClusterRole
é o seguinte: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
função — Essa função concede as permissões necessárias AWS Resilience Hub para acessar recursos em namespaces específicos. Ou seja, você deve criar umaRoleBinding
função em cada namespace para permitir o acesso AWS Resilience Hub a recursos dentro de um determinado namespace.nota
Se você estiver usando
ClusterAutoscaler
para escalonamento automático, você também deve criarRoleBinding
emkube-system
. Isso é necessário para avaliar o seuClusterAutoscaler
, que faz parte do namespacekube-system
.Ao fazer isso, você AWS Resilience Hub concederá as permissões necessárias para avaliar recursos dentro do
kube-system
namespace enquanto avalia seu cluster Amazon EKS.O modelo para criar a função
RoleBinding
é o seguinte: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
função — Essa função concede as permissões necessárias AWS Resilience Hub para acessar recursos com escopo de cluster.O modelo para criar a função
ClusterRoleBinding
é o seguinte: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
-
-
-
Atualize
aws-auth ConfigMap
para mapearresilience-hub-eks-access-group
com o perfil do IAM que é usado para acessar o cluster do Amazon EKS.Essa etapa cria um mapeamento entre o perfil do IAM usado na etapa 1 com o grupo do Kubernetes criado na etapa 2. Esse mapeamento concede permissões a perfis do IAM para acessar recursos dentro do cluster do Amazon EKS.
nota
-
O
ROLE-NAME
refere-se ao perfil do IAM usado para acessar o cluster do Amazon EKS.-
Se seu aplicativo estiver configurado para usar acesso baseado em funções, a função deverá ser a função de invocador ou a função de conta secundária que é passada AWS Resilience Hub durante a criação do aplicativo.
-
Se seu aplicativo estiver configurado para usar o usuário atual do IAM para acessar recursos, ele deverá ser
AwsResilienceHubAssessmentEKSAccessRole
.
-
-
ACCOUNT-ID
deve ser o ID da AWS conta do cluster Amazon EKS.
É possível criar
aws-auth
ConfigMap
usando uma das seguintes maneiras:-
Usar o
eksctl
Use o comando a seguir para atualizar
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
-
Você pode editar manualmente
aws-auth
ConfigMap
adicionando os detalhes do perfil do IAM à seçãomapRoles
deConfigMap
nos dados. Use o comando a seguir para editar oaws-auth
ConfigMap
.kubectl edit -n kube-system configmap/aws-auth
A seção
mapRoles
consiste nos seguintes parâmetros:-
rolearn
: o nome do recurso da Amazon (ARN) do perfil do IAM a ser adicionado.-
Sintaxe do ARN:
arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME>
.
-
-
username
: o username dentro do Kubernetes a ser mapeado para o perfil do IAM (AwsResilienceHubAssessmentEKSAccessRole
). -
groups
: os nomes dos grupos devem corresponder aos nomes dos grupos criados na Etapa 2 (resilience-hub-eks-access-group
).
nota
Se a seção
mapRoles
não existir, você deverá adicioná-la manualmente.Use o modelo a seguir para adicionar os detalhes do perfil do IAM à seção
mapRoles
deConfigMap
nos dados.- groups: - resilience-hub-eks-access-group rolearn: arn:aws:iam::<ACCOUNT-ID>:role/<ROLE-NAME> username: AwsResilienceHubAssessmentEKSAccessRole
-
-