

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á.

# Permissões e funções do IAM necessárias
<a name="next-gen-iam-permissions"></a>

**AWS política gerenciada**

É possível anexar a `AWSResilienceHubV2AssessmentExecutionPolicy` a suas identidades do IAM. Ao executar uma avaliação, essa política concede permissões de acesso somente para leitura a outros AWS serviços para descoberta, avaliação e gerenciamento de resiliência. Para obter detalhes sobre as permissões incluídas nesta política, consulte [AWSResilienceHubV2AssessmentExecutionPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-v2-assessment-policy).

**nota**  
O `AWSResilienceHubV2AssessmentExecutionPolicy` substitui o anterior `AWSResilienceHubAsssessmentExecutionPolicy` para uso com a próxima geração do Resilience Hub.

Se você usar o teste de resiliência, anexe também a política `AWSResilienceHubResilienceTestingPolicy` gerenciada. Essa política concede ao Resilience Hub as permissões AWS Fault Injection Service (AWS FIS) necessárias para iniciar e gerenciar experimentos em seu nome. Para obter detalhes sobre as permissões incluídas nesta política, consulte [AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**nota**  
Se a política gerenciada não estiver disponível em sua conta, crie uma política embutida com as mesmas permissões. Para obter o conteúdo da política, consulte[AWSResilienceHubResilienceTestingPolicy](next-gen-security-iam-awsmanpol.md#next-gen-security_iam_aws-resilience-testing-policy).

**Papel do IAM para avaliação e teste de resiliência **

Para executar uma avaliação ou um teste de resiliência, a próxima geração do Resilience Hub deve assumir uma função do IAM com as permissões necessárias. Essa função descobre e lê a configuração de seus AWS recursos e, quando o teste de resiliência está ativado, inicia e gerencia AWS FIS experimentos em seu nome.

Há duas maneiras de criar ou configurar essa função:
+ **Criar uma nova função de serviço (recomendado) ** — Ao criar ou editar um serviço no console do Resilience Hub de próxima geração, você pode escolher ** Criar nova função ** em Modelo ** de ** permissão. O console cria automaticamente uma função do IAM com a política de confiança correta e anexa a política `AWSResilienceHubV2AssessmentExecutionPolicy` gerenciada.
+ **Use uma função de serviço existente ** — Se você já tiver uma função configurada ou se preferir criar funções fora do console, escolha ** Usar uma função de serviço existente**. Em seguida, escolha a função na lista e certifique-se de que a função tenha a política de confiança e as permissões necessárias descritas abaixo.

Para criar a função manualmente, abra o console do IAM. Escolha Política de confiança ** personalizada ** e use uma política de confiança como esta:

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

Para obter permissões, anexe a política `AWSResilienceHubV2AssessmentExecutionPolicy` gerenciada. Se você usar o teste de resiliência, anexe também a política `AWSResilienceHubResilienceTestingPolicy` gerenciada.

** Service-Linked Função do IAM **

O Resilience Hub de próxima geração cria automaticamente uma Service-Linked função com a política `AWSResilienceHubServiceRolePolicy` gerenciada.

**Permissões de acesso ao arquivo de estado do Terraform **

Se você estiver incluindo arquivos de estado do Terraform em seu serviço Resilience Hub de próxima geração, forneça permissões para ler os arquivos do Terraform do seu bucket do Amazon S3 com uma política como esta:

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

**Permissões do Amazon EKS **

Se você estiver incluindo clusters do Amazon EKS em seu serviço do Resilience Hub de próxima geração, siga o processo de três etapas a seguir para fornecer permissões do Resilience Hub de última geração para ler dados de configuração para seus clusters do Amazon EKS usando o controle de acesso baseado em funções (RBAC) do Kubernetes.

**Etapa 1: aplique o seguinte ao seu cluster Amazon EKS **

Isso concede ao Resilience Hub de próxima geração acesso somente para leitura aos recursos do Kubernetes necessários em todos os namespaces:

```
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
```

**Etapa 2: mapear a função do IAM para o grupo Kubernetes **

Mapeie a função do IAM que você criou para o grupo `resilience-hub-eks-access-group` Kubernetes. Você pode usar as entradas de acesso do Amazon EKS (recomendadas) ou `aws-auth` ConfigMap o.

**Opção A: Usar entradas de acesso EKS (recomendado) **

As entradas de acesso EKS são o método preferido para gerenciar a autenticação do cluster. Seu cluster deve usar `API` nosso modo `API_AND_CONFIG_MAP` de autenticaçã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"]'
```

**Opção B: usando aws-auth ConfigMap **

Se seu cluster usa o modo `CONFIG_MAP` de `API_AND_CONFIG_MAP` autenticação, você pode editar o ConfigMap aws-auth em vez disso:

Usando 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
```

Ou edite manualmente o ConfigMap:

```
kubectl edit -n kube-system configmap/aws-auth
```

Adicione isso `mapRoles` na seção de dados:

```
- groups:
    - resilience-hub-eks-access-group
  rolearn: arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole
  username: AwsResilienceHubAssessmentEKSAccessRole
```

**Etapa 3: Verificar **

Confirme se os recursos do RBAC existem e se o mapeamento de funções está em vigor:

```
kubectl get clusterrole resilience-hub-eks-access-cluster-role
kubectl describe clusterrolebinding resilience-hub-eks-access-cluster-role-binding
```

Se estiver usando entradas de acesso (Opção A):

```
aws eks describe-access-entry \
  --cluster-name {{cluster-name}} \
  --principal-arn arn:aws:iam::{{ACCOUNT-ID}}:role/ResilienceHubRole
```

Se estiver usando aws-auth ConfigMap (Opção B):

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