

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

# Use AWS segredos e CSI do provedor de configuração com funções do IAM para contas de serviço (IRSA)
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [Pré-requisitos](#prerequisites)
+ [Configurar o controle de acesso](#integrating_ascp_irsa_access)
+ [Identificar quais segredos montar](#integrating_ascp_irsa_mount)
+ [Solução de problemas](#integrating_ascp_irsa_trouble)

## Pré-requisitos
<a name="prerequisites"></a>
+ Cluster do Amazon EKS (versão 1.17 ou posterior)
+ Acesso a um AWS CLI cluster Amazon EKS via `kubectl`

## Configurar o controle de acesso
<a name="integrating_ascp_irsa_access"></a>

O ASCP recupera a Identidade de Pods do Amazon EKS e a substitui por um perfil do IAM. Você define permissões em uma política do IAM para esse perfil do IAM. Quando o ASCP assume o perfil do IAM, ele obtém acesso aos segredos que você autorizou. Outros contêineres não podem acessar os segredos, a menos que você também os associe ao perfil do IAM. 

**Para conceder ao seu pod do Amazon EKS acesso aos segredos no Secrets Manager**

1. Crie uma política de permissões que conceda as permissões `secretsmanager:GetSecretValue` e `secretsmanager:DescribeSecret` aos segredos que o pod precisa acessar. Para visualizar um exemplo de política, consulte [Exemplo: permissão para ler e descrever segredos individuais](auth-and-access_iam-policies.md#auth-and-access_examples-read-and-describe).

1. Crie um provedor IAM OIDC Connect (OIDC) para o cluster, se você ainda não tiver um. Para obter mais informações, consulte [Criação de um provedor IAM OIDC para o seu cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) no *Guia do Usuário do Amazon EKS*.

1. Crie um [perfil do IAM para conta de serviço](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) e anexe a política a ele. Para obter mais informações, consulte [Criação de um perfil do IAM para uma conta de serviço](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) no *Guia do usuário do Amazon EKS*.

1. Se você usa um cluster privado do Amazon EKS, certifique-se de que a VPC na qual o cluster está tenha um AWS STS endpoint. Para obter informações sobre a criação de um endpoint, consulte [Endpoints da VPC da interface](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) no *Guia do usuário do AWS Identity and Access Management *.

## Identificar quais segredos montar
<a name="integrating_ascp_irsa_mount"></a>

Para determinar quais segredos o ASCP monta no Amazon EKS como arquivos no sistema de arquivos, você cria um arquivo YAML [SecretProviderClass](ascp-examples.md#ascp-examples-secretproviderclass). O `SecretProviderClass` lista os segredos a serem montados e o nome do arquivo no qual montá-los. O`SecretProviderClass` deve estar no mesmo namespace que o pod do Amazon EKS ao qual ele faz referência.

### Montagem dos segredos como arquivos
<a name="mount-secrets"></a>

As instruções a seguir mostram como montar segredos como arquivos usando exemplos de arquivos YAML [ExampleSecretProviderClass.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml)e. [ExampleDeployment.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleDeployment-IRSA.yaml)

**Para montar segredos no Amazon EKS**

1. Aplique o `SecretProviderClass` ao pod:

   ```
   kubectl apply -f ExampleSecretProviderClass.yaml
   ```

1. Implante o pod:

   ```
   kubectl apply -f ExampleDeployment.yaml
   ```

1. O ASCP monta os arquivos.

## Solução de problemas
<a name="integrating_ascp_irsa_trouble"></a>

É possível visualizar a maioria dos erros ao descrever a implantação do pod. 

**Para ver mensagens de erro para o contêiner**

1. Obtenha uma lista de nomes de pods com o comando a seguir. Se você não estiver usando o namespace padrão, use `-n {{nameSpace}}`.

   ```
   kubectl get pods
   ```

1. Para descrever o pod, no comando a seguir, {{podId}} use o ID do pod dos pods que você encontrou na etapa anterior. Se você não estiver usando o namespace padrão, use `-n {{nameSpace}}`.

   ```
   kubectl describe pod/{{podId}}
   ```

**Para ver erros para o ASCP**
+ Para encontrar mais informações nos registros do provedor, no comando a seguir, {{podId}} use o ID do pod *csi-secrets-store-provider-aws*.

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs Pod/{{podId}}
  ```
+ 

**Verifique se a CRD do `SecretProviderClass` está instalada:**

  ```
  kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io
  ```

  Este comando deve retornar informações sobre a definição do recurso personalizado `SecretProviderClass`.
+ 

**Verifique se o SecretProviderClass objeto foi criado.**

  ```
  kubectl get secretproviderclass {{SecretProviderClassName}} -o yaml
  ```