Concedi l'accesso in lettura al ruolo IAM EC2 al bucket S3


10

Ho un'app AWS Elastic Beanstalk Rails che sto configurando tramite lo script di configurazione per estrarre alcuni file da un bucket S3. Quando avvio l'applicazione, continuo a ricevere il seguente errore nei registri (il nome del bucket è stato modificato per motivi di sicurezza ):

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>

File di configurazione:

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

L'ambiente Elastic Beanstalk è configurato con il aws-elasticbeanstalk-ec2-roleruolo IAM come ruolo di istanza. Questo ruolo ha la seguente politica:

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

E il bucket S3 ha la seguente politica:

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

Cosa devo modificare per consentire alle mie istanze EC2 di accedere al mio bucket S3?

Risposte:


6

Dalla tua partecipazione EC2, dovrai anche recuperare le credenziali temporanee nei metadati dell'istanza:

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

Dovrai quindi utilizzare l'accesso e la chiave segreta forniti per accedere al tuo bucket S3.


1
Quando lo fai tramite AWS SDK per la lingua specifica di un'applicazione, l'SDK si prende cura internamente di ottenere le credenziali temporanee e quindi aggiornarle in base a intervalli di tempo specifici.
Whokares,

2
Come si usa l'accesso e la chiave segreta per accedere al bucket S3? Hai un esempio? Saluti
Céline Aussourd

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.