Como conceder acesso à minha instância do Amazon EC2 a um bucket do Amazon S3?

5 minuto de leitura
0

Não consigo acessar um bucket do Amazon Simple Storage Service (Amazon S3) da minha instância do Amazon Elastic Compute Cloud (Amazon EC2). Como ativar o acesso de leitura/gravação a buckets do S3 a partir de uma instância do EC2?

Breve descrição

Para se conectar a buckets do S3 a partir de instâncias do EC2, você deve fazer o seguinte:

1.    Crie uma função de perfil do AWS Identity and Access Management (IAM) que conceda acesso ao Amazon S3.

2.    Anexe o perfil da instância do IAM à instância.

3.    Valide permissões no bucket do S3.

4.    Valide a conectividade de rede da instância do EC2 com o Amazon S3.

5.    Valide o acesso a buckets do S3.

Resolução

Crie um perfil de instância do IAM que conceda acesso ao Amazon S3

1.    Abra o console do IAM.

2.    Escolha Perfis e depois Criar perfil.

3.    Selecione Serviço da AWS e depois escolha EC2 em Caso de uso.

Observação: criar um perfil do IAM a partir do console com o EC2 selecionado como entidade confiável cria automaticamente um perfil de instância do IAM com o mesmo nome do perfil. No entanto, se a função for criada usando a AWS Command Line Interface (AWS CLI) ou a partir da API, um perfil de instância não será criado automaticamente. Para obter mais informações, consulte Criei um perfil do IAM, mas ele não aparece na lista suspensa quando executo uma instância. O que eu faço?

4.    Selecione Avançar: Permissões.

5.    Crie uma política personalizada que forneça as permissões mínimas necessárias para acessar o bucket do S3. Para obter instruções sobre como criar políticas personalizadas, consulte Como escrever políticas do IAM: como conceder acesso a um bucket do Amazon S3 e Gerenciamento de identidade e acesso no Amazon S3.

Observação: criar uma política com as permissões mínimas necessárias é uma prática recomendada de segurança. No entanto, para permitir o acesso do EC2 a todos os buckets do Amazon S3, use a política do IAM gerenciada AmazonS3ReadOnlyAccess ou AmazonS3FullAccess.

6.    Selecione Avançar: Etiquetas e depois Avançar: Revisão.

7.    Insira um Nome do perfil e selecione Criar perfil.

Anexar o perfil da instância do IAM à instância do EC2

1.    Abra o console do Amazon EC2.

2.    Escolha Instâncias.

3.    Selecione a instância à qual você deseja anexar ao perfil do IAM.

4.    Escolha a guia Ações, Segurança e depois Modificar perfil do IAM.

5.    Selecione o perfil do IAM que você acabou de criar e depois escolha Salvar. A função do IAM é atribuída à sua instância do EC2.

Validar permissões no bucket do S3

1.    Abra o console do Amazon S3.

2.    Selecione o bucket S3 cuja política você deseja verificar.

3.    Escolha Permissões.

4.    Selecione Política do bucket.

5.    Procure declarações com Efeito: Negar.

6.    Na política do bucket, edite ou remova quaisquer instruções Efeito: Negar que estejam negando o acesso ao seu bucket para o perfil da instância do IAM. Para obter instruções sobre a edição de políticas, consulte Como editar políticas do IAM.

Valide a conectividade de rede da instância do EC2 com o Amazon S3

Para que sua instância do EC2 se conecte a endpoints do S3, ela deve ser uma das seguintes:

  • Instância do EC2 com um endereço IP público e uma entrada de tabela de rotas com a rota padrão apontando para um gateway da Internet
  • Instância privada do EC2 com uma rota padrão por meio de um gateway de NAT
  • Instância do EC2 privada com conectividade com o Amazon S3 usando um endpoint de VPC de gateway

Para solucionar problemas de conectividade entre uma instância privada do EC2 e um bucket do S3, consulte Por que não consigo me conectar a um bucket do S3 usando um endpoint de VPC de gateway?

Valide o acesso a buckets do S3

1.    Instale a AWS CLI na sua instância do EC2.

Observação: se você receber erros ao executar comandos da AWS CLI, verifique se está usando a versão mais recente da AWS CLI.

2.    Verifique o acesso aos buckets do S3 executando o seguinte comando. Substitua DOC-EXAMPLE-BUCKET pelo nome do bucket do S3.

aws s3 ls s3://DOC-EXAMPLE-BUCKET

Observação: objetos do S3 criptografados com uma chave do AWS Key Management Service (AWS KMS) devem ter permissões kms: Descriptografar concedidas nos seguintes elementos:

  • O perfil do IAM anexado à instância.
  • A política de chave do KMS.

Se essas permissões não forem concedidas, você não poderá copiar ou baixar objetos do S3. Para mais informações, consulte Preciso especificar a chave do AWS KMS ao baixar um objeto do Amazon S3 criptografado pelo KMS?


Informações relacionadas

Por que não consigo me conectar a um bucket do S3 usando um endpoint de VPC de gateway?

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos