2015-07-27 27 views
6

Ho il cli AWS installato su un'istanza EC2 e l'ho configurato eseguendo aws configure e assegnandogli le chiavi AWSAccessKeyId e AWSSecretKey, quindi se eseguo il comando aws s3 ls restituisce il nome di il mio secchio S3 (chiamalo "mybucket").S3 cp AccessDenied da AWS cli con chiavi root

Ma, se poi provo aws s3 cp localfolder/ s3://mybucket/ --recursive ottengo un errore che assomiglia

A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Anonymous users cannot initiate multipart uploads. Please authenticate. 

ho pensato che eseguendo AWS configurare e dandogli la mia chiave radice che stavo dando efficacemente il tutto AWS cli ha bisogno di autenticare? C'è qualcosa che mi manca per quanto riguarda la copia in un secchio S3 invece di elencarli?

+1

Il tuo utente/ruolo IAM dovrà assegnare un criterio che gli consenta di eseguire l'azione "CreateMultipartUpload': è possibile simulare le politiche tramite IAM per verificare se funzionerà. –

+1

chiave di accesso root e chiavi segrete dovrebbero avere tutti i privilegi. Prova a eseguire nuovamente la configurazione di aws - –

+0

Grazie @Naveen In base al tuo commento, ho provato a utilizzare un diverso set di chiavi root che avevo su un altro computer e ha funzionato. Ora sono perplesso sul motivo per cui un set di chiavi di root ha funzionato, ma l'altro no. Ma almeno il tuo suggerimento ha risolto il mio problema. –

risposta

3

Root Le chiavi di accesso e la chiave segreta hanno pieno controllo e privilegi completi per interagire con AWS. Prova a eseguire nuovamente lo aws configure per ricontrollare l'impostazione e riprovare.

PS: si sconsiglia vivamente di utilizzare le chiavi di accesso root - si prega di dare un pensiero sta creando un IAM (che prende privilegi di amministratore - come root) e utilizzare quelli.

2

Se si dispone di variabili d'ambiente AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID e AWS_REGION set, AWS CLI dà maggiore precedenza a loro, e non per le credenziali si specifica con aws configure.

Quindi, nel mio caso, il comando bash unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY ha risolto il problema.

2

pensato che vorrei aggiungere a un problema molto simile che ho avuto dove potrei elencare secchi, ma non sono riuscito a scrivere su un dato secchio di tornare l'errore

An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied

Se il secchio utilizza crittografia lato server dovrai aggiungere il flag --sse per poter scrivere su questo bucket.

0

Si prega di creare la politica come qui di seguito

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "myPolicy", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "*", 
      "Resource": [ 
       "arn:aws:s3:::YOUR_BUCKET_NAME/*", 
       "arn:aws:s3:::YOUR_BUCKET_NAME" 
      ] 
     } 
    ] 
} 

e prova a caricare. Ha funzionato per me.

Problemi correlati