

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

# Protegendo AWS IAM Roles Anywhere com um certificado privado
<a name="iam-roles-anywhere-private-ca"></a>

*Barnali Singh, Amazon Web Services*

## Resumo
<a name="iam-roles-anywhere-private-ca-summary"></a>

Esse padrão demonstra como implementar AWS IAM Roles Anywhere with Autoridade de Certificação Privada da AWS (CA privada da AWS) para permitir a autenticação segura e baseada em certificados para cargas de trabalho externas que acessam recursos. AWS A solução elimina a necessidade de chaves de acesso de longo prazo usando X.509 certificados para obter AWS credenciais temporárias. Esse é um padrão de segurança nativo da nuvem que inclui automação completa por meio de AWS CloudFormation modelos e scripts de shell, permitindo que as organizações implantem rapidamente a autenticação híbrida segura para aplicativos locais, CI/CD pipelines e sistemas externos.

## Pré-requisitos e limitações
<a name="iam-roles-anywhere-private-ca-prereqs"></a>

**Pré-requisitos **

**Para** **implantação de AWS infraestrutura:**
+ AWS CLI instalado e configurado com permissões administrativas
+ Permissões administrativas para IAM e CA privada da AWS serviços IAM Roles Anywhere

**Para configuração do sistema cliente:**
+ AWS CLI instalado no sistema cliente com as seguintes permissões:
  + `acm-pca:IssueCertificate`
  + `acm-pca:GetCertificate`
+ OpenSSL instalado no sistema cliente
+ AWS Assistente de assinatura instalado em cada sistema cliente
+ Compreensão básica de X.509 certificados e conceitos de PKI

**nota**  
O CloudFormation modelo gerencia automaticamente a criação de AWS recursos. O OpenSSL só é necessário nos sistemas externos que usarão certificados para acessar recursos. AWS 

**Limitações**
+ O período de validade do certificado é limitado a um máximo de 10 anos para a CA raiz
+ Alterne os certificados do cliente regularmente. Recomendamos que você faça isso pelo menos uma vez por ano.
+ Limitação regional: a confiança é âncora e CA privada da AWS deve estar na mesma AWS região
+ Tamanho máximo do certificado: 16 KB para certificados de clientes

**Versões do produto**
+ AWS CLI versão 2.0 ou posterior
+ OpenSSL 1.1.1 ou posterior
+ AWS Signing Helper 1.4.0 ou posterior
+ CA privada da AWS, versão atual
+ IAM Roles Anywhere e, versão atual

## Arquitetura
<a name="iam-roles-anywhere-private-ca-architecture"></a>

**Pilha de tecnologias de destino**

• CA privada da AWS - CA raiz para emissão de certificados

• IAM Roles Anywhere - serviço de assunção de Certificate-based funções

• Funções e políticas do IAM — Controle de acesso e permissões

• AWS Signing Helper - ferramenta de recuperação de Client-side credenciais

• OpenSSL - Geração de certificados e chaves

• CloudFormation - Automação de infraestrutura

**Arquitetura de destino**

** **

![](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2600dc9f-9c1a-442e-9523-1c925aff7620/images/309c3de5-255e-4257-8ad8-af58c1ce8855.png)


Figura 1 Autenticação baseada em IAM Roles Anywhere certificado

**A arquitetura consiste em:**

1. Certificado atual - O sistema externo apresenta o X.509 certificado para AWS

1. Autenticar - IAM Roles Anywhere recebe o certificado e inicia a autenticação

1. Verificar - O Trust Anchor verifica o certificado em relação às autoridades de certificação confiáveis

1. Validar - CA privada da AWS valida a autenticidade e o status do certificado

1. Certificado válido - CA privada da AWS confirma que o certificado é válido e confiável

1. Assumir função - IAM Roles Anywhere permite que o sistema externo assuma a função configurada do IAM

1. Conceder acesso - O sistema externo recebe credenciais temporárias para acessar AWS recursos

*Automação e escala*

Esse padrão inclui automação completa por meio de:

• CloudFormation modelo para provisionamento AWS de recursos com permissões configuráveis do IAM

• Script de shell para geração de certificados e configuração de clientes

• Configuração parametrizada para vários ambientes e políticas personalizadas de IAM

• Geração de certificados em lote para vários clientes

• Instalação e configuração automatizadas do auxiliar de credenciais

**Fluxo de trabalho**

1. Estabeleça os AWS serviços básicos necessários para o uso da autenticação baseada em certificados. IAM Roles Anywhere

1. Crie e configure certificados e ferramentas de autenticação do lado do cliente para acesso seguro AWS .

1. Verifique a funcionalidade de autenticação baseada em certificado e estabeleça o monitoramento das operações contínuas.

## Ferramentas
<a name="iam-roles-anywhere-private-ca-tools"></a>

• CloudFormation - Automatiza a criação de PCA, Trust Anchor, IAM Role e Profile

• AWS CLI - Command-line interface para interação AWS de serviços

• OpenSSL - Gera solicitações de assinatura de certificados e gerencia certificados

• Assistente de AWS assinatura - troca certificados por credenciais temporárias AWS 

• Bash/shell Scripts - Automatiza todo o processo de configuração

*Repositório de código*

[Funções do AWS IAM em qualquer lugar com autoridade de certificação privada](https://github.com/aws-samples/sample-aws-iam-roles-anywhere-automation)

## Práticas recomendadas
<a name="iam-roles-anywhere-private-ca-best-practices"></a>
+ Configure as políticas do IAM com base no princípio de privilégio mínimo usando o `--iam-policies parameter`
+ Alterne os certificados do cliente regularmente. Recomendamos que você faça isso anualmente.
+ Use validação forte de certificados em políticas de confiança
+ Implemente procedimentos de revogação de certificados
+ Monitore as datas de expiração do certificado

## Épicos
<a name="iam-roles-anywhere-private-ca-epics"></a>

### Configurar a AWS infraestrutura
<a name="set-up-aws-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| **Implemente** a CloudFormation**infraestrutura** | Crie e implante o CloudFormation modelo que provisiona todos os AWS recursos necessários CA privada da AWS, incluindo Trust Anchor, função do IAM com políticas e IAM Roles Anywhere perfil apropriados.  Configure parâmetros para nomenclatura do projeto, períodos de validade do certificado, duração da sessão e anexos da política do IAM para estabelecer a base da infraestrutura principal. | Arquiteto de nuvem, DevOps engenheiro | 
| Configurar a configuração da autoridade de certificação | Inicialize o CA privada da AWS instalando o certificado raiz, configurando modelos de certificado e estabelecendo a cadeia de confiança do certificado. Configure os períodos de validade do certificado, os algoritmos-chave e as extensões de certificado necessários para a IAM Roles Anywhere autenticação, a fim de garantir a infraestrutura de PKI adequada. | Administrador da AWS, administrador de nuvem | 
| Validar a configuração de recursos da &AWS; | Execute uma validação abrangente de todos os AWS recursos implantados para garantir a configuração e a conectividade adequadas. Verifique se o Trust Anchor está vinculado corretamente CA privada da AWS, a função do IAM tem as permissões apropriadas, o perfil está configurado corretamente e todos os recursos estão prontos para fluxos de trabalho active/ready de autenticação com base em certificados. | Administrador de sistemas da AWS, engenheiro de testes | 

### Gere e implante certificados de cliente
<a name="generate-and-deploy-client-certificates"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare o ambiente do cliente | Configure o ambiente do cliente tornando os scripts de implantação executáveis e garantindo as permissões adequadas. Configure o sistema local com as ferramentas e dependências necessárias, verifique a acessibilidade do script e estabeleça a base para os processos de geração e implantação de certificados. | DevOps engenheiro, administrador de sistemas da AWS | 
| Gerar solicitação de assinatura de certificado | Crie uma solicitação de assinatura de certificado (CSR) para o sistema cliente usando o OpenSSL ou ferramentas equivalentes. Configure os parâmetros do certificado, incluindo informações sobre assuntos, algoritmos-chave e extensões de certificado.  Certifique-se de que o CSR atenda aos CA privada da AWS requisitos e contenha metadados apropriados para IAM Roles Anywhere autenticação. | Administrador de nuvem, DevOps engenheiro | 
| Emitir certificado de cliente via CA privada da AWS | Processe o CSR CA privada da AWS para emitir um certificado de cliente válido. Configure períodos de validade de certificados, modelos de certificados e garanta o estabelecimento adequado da cadeia de certificados. Verifique a emissão do certificado e baixe o certificado assinado para implantação no cliente. | Administrador da AWS, arquiteto de nuvem | 

### Teste e valide a autenticação
<a name="test-and-validate-authentication"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Obtenha AWS credenciais temporárias | Execute o script auxiliar de credenciais para recuperar AWS credenciais temporárias usando o certificado de cliente e a chave privada configurados. Verifique se o processo de recuperação de credenciais funciona corretamente, valide o formato e os prazos de expiração da credencial e garanta a integração adequada com o IAM Roles Anywhere serviço para fluxos de trabalho de autenticação contínuos. | DevOps engenheiro, administrador de sistemas da AWS | 
| Teste o acesso aos AWS recursos | Execute testes abrangentes de acesso aos AWS recursos usando as credenciais temporárias obtidas. Execute vários AWS CLI comandos e chamadas de API para verificar a conectividade com serviços de destino, como Amazon S3, Amazon EC2 e. AWS Lambda Valide se as permissões estão alinhadas às políticas de função configuradas do IAM e documente os padrões de acesso bem-sucedidos. | Engenheiro de testes, administrador de nuvem | 
| Verifique a suposição e as permissões da função | Conduza uma validação completa do processo de assunção de funções e dos limites de permissão do IAM. Teste as operações permitidas e restritas para confirmar se o acesso com privilégios mínimos foi aplicado adequadamente. Verifique os limites de duração da sessão, os mecanismos de atualização de credenciais e garanta que a suposição da função siga as melhores práticas de segurança. | Administrador da AWS, engenheiro de testes | 
| Implemente monitoramento e registro | Configure monitoramento e registro abrangentes para o sistema de autenticação baseado em certificados. Configure o CloudTrail registro para trilhas de auditoria, implemente o monitoramento de expiração de certificados, configure alertas para falhas de autenticação e estabeleça painéis para rastrear padrões de uso e eventos de segurança em toda a IAM Roles Anywhere infraestrutura. | DevOps engenheiro, arquiteto de nuvem | 

## Solução de problemas
<a name="iam-roles-anywhere-private-ca-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| **Falhas na validação do certificado —** “Falha na validação do certificado” ou erros InvalidCertificate "” ao tentar a autenticação. | **Etapas de resolução:**<br />• Verifique as datas de validade do certificado usando <br />openssl x509 -in certificate.pem -dates -noout<br />• Verifique se a configuração do Trust Anchor aponta para a CA privada correta<br />• Certifique-se de que a chave privada corresponda ao certificado<br />• Gere novamente o certificado se ele tiver sido emitido pela CA errada | 
|  **Erros de permissão negada do IAM —** “Acesso negado” ou UnauthorizedOperation "" ao acessar AWS recursos apesar da autenticação bem-sucedida | **Etapas de resolução:**<br />• Revise e expanda as políticas de função do IAM para incluir as permissões necessárias<br />• Verifique se a política de confiança inclui *rolesanywhere.amazonaws.com* como uma entidade confiável<br />• Verifique se a configuração do ARN do perfil corresponde aos recursos implantados<br />• Implementar um mecanismo de atualização de credenciais para processos de longa execução | 

## Recursos relacionados
<a name="iam-roles-anywhere-private-ca-resources"></a>
+ [IAM Roles Anywhere Guia do usuário](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/)
+ [Autoridade de Certificação Privada da AWS Guia do usuário](https://docs.aws.amazon.com/privateca/latest/userguide/)
+ [AWS Documentação do Assistente de Assinatura](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html)

## Mais informações
<a name="iam-roles-anywhere-private-ca-additional"></a>

Esse padrão é ideal para organizações com arquiteturas de nuvem híbrida, CI/CD pipelines em execução externa AWS ou qualquer sistema externo que exija acesso seguro AWS . A abordagem baseada em certificados fornece melhor segurança do que as chaves de acesso de longo prazo e permite o gerenciamento centralizado de certificados por meio do. CA privada da AWS

**Permissões configuráveis do IAM —** A solução oferece suporte à configuração flexível da política do IAM por meio de`--iam-policies parameter`:
+ Padrão: `ReadOnlyAccess` para implantação inicial segura
+ Personalizado: especifique ARNs de política separados por vírgula para casos de uso específicos. Por exemplo,`S3ReadOnlyAccess`,`EC2ReadOnlyAccess`, ou políticas personalizadas. Oferece suporte a várias políticas para requisitos complexos de permissão.

**Exemplos de uso:**

```
# Default read-only access
./deploy.sh

# S3-only access
./deploy.sh --iam-policies "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"

# Multiple services
./deploy.sh --iam-policies "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess,arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess"
```