Conceder acesso de leitura do papel do EC2 IAM ao bucket do S3

10

Eu tenho um aplicativo do AWS Elastic Beanstalk Rails que estou configurando por meio do script de configuração para extrair alguns arquivos de um bucket do S3. Quando inicio o aplicativo, continuo recebendo o seguinte erro nos logs (o nome do depósito foi alterado para segurança ):

Failed to retrieve https://s3.amazonaws.com/my.bucket/bootstrap.sh: HTTP Error 403 : <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message>

Arquivo de configuração:

packages:
  yum:
    git: []

files:
  /opt/elasticbeanstalk/hooks/appdeploy/pre/01a_bootstrap.sh:
    mode: "00755"
    owner: root
    group: root
    source: https://s3.amazonaws.com/my.bucket/bootstrap.sh

O ambiente do Elastic Beanstalk é configurado com a função aws-elasticbeanstalk-ec2-role IAM como função de instância. Esta função tem a seguinte política:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": "arn:aws:s3:::my.bucket/*"
    }
  ]
}

E o bucket do S3 tem a seguinte política:

{
"Version": "2008-10-17",
"Statement": [
    {
        "Sid": "Stmt1371012493903",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::<account #>:role/aws-elasticbeanstalk-ec2-role"
        },
        "Action": [
            "s3:List*",
            "s3:Get*"
        ],
        "Resource": "arn:aws:s3:::my.bucket/*"
    }
]
}

O que preciso alterar para que minhas instâncias do EC2 acessem meu bucket do S3?

    
por dignoe 12.06.2013 / 21:54

2 respostas

6

Do seu EC2, você também precisará recuperar as credenciais temporárias nos metadados da instância:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<your-iam-role-name>

Você deverá então usar o acesso fornecido e a chave secreta para acessar o seu bucket do S3.

    
por 14.06.2013 / 17:54
0

Se o acesso entre contas for cruzado, verifique se ele não está relacionado aos cabeçalhos da ACL, conforme mencionado aqui: link (mais informações em este tópico de problema: link )

Verifique também o ambiente / usuário a partir do qual você está executando para ver se não há chaves importantes (1AWS_ACCESS_KEY1, etc) em /etc/environment ou ~/.aws/credentials

    
por 11.01.2018 / 03:30