Bucket protegido @ S3 - Acesso negado

Bucket protegido @ S3 - Acesso negado

Estou tentando conceder acesso RW a um determinado bucket para um usuário específico usando a seguinte política de bucket:

{
  "Id": "Policy1322043790167",
  "Statement": [
    {
      "Sid": "Stmt9999043784080",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion",
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::private_bucket/*",
      "Principal": {
        "AWS": [
          "arn:aws:iam::999903749999:user/my.username.under.my.aws.account"
        ]
      }
    }
  ]
}

Pelo que posso notar, é praticamente igual aos exemplos emhttp://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?AccessPolicyLanguage_UseCases_s3_a.htmle segui o que está documentado emhttp://docs.amazonwebservices.com/IAM/latest/GettingStartedGuide/index.html?SetUpAdminsGroup.html

Mas não está funcionando. Usando o usuário AWS Key e Secret Key com o .NET SDK ou com CloudBerry Explorer, recebo um"Acesso negado"erro.

o que estou perdendo?

O log a seguir é um trecho do log de operações testado pelo Cloudberry:

System.Net.WebException O servidor remoto retornou um erro: (403) Proibido. em System.Net.HttpWebRequest.GetResponse() em db.A(dD , Action`1 , HttpWebRequest , dW )

23/11/2011 08:36:10.505 [S3] [4] INFO - Início de InternalListBucketCall, bucket: secure_bucket, prefixo: , marcador: , maxkeys: 1, delimitador: / 2011-11-23 08:36:11.388 [S3 ] [4] ERRO - Status da resposta HTTP: 403: Proibido 23/11/2011 08:36:11,390 [S3] [4] ERRO - Cabeçalho de resposta HTTP: x-amz-request-id: 70941BB8654CE12E 23/11/2011 08 :36:11.392 [S3] [4] ERRO - Cabeçalho de resposta HTTP: x-amz-id-2: JssG1wXtZSjiGO8oVb9B46NNkn24TpZToD4u/KZAFaPBFBECF7YDMPnckVpyhaDE 2011-11-23 08:36:11.394 [S3] [4] ERRO - cabeçalho de resposta ttp: Transferência -Codificação: fragmentado 23/11/2011 08:36:11.396 [S3] [4] ERRO - Cabeçalho de resposta HTTP: Tipo de conteúdo: aplicativo/xml 23/11/2011 08:36:11.398 [S3] [4] ERRO - Cabeçalho de resposta HTTP: Data: Quarta, 23 de novembro de 2011 10:36:31 GMT 2011-11-23 08:36:11.400 [S3] [4] ERRO - Cabeçalho de resposta HTTP: Servidor: AmazonS3 2011-11-23 08: 36:11.402 [S3] [4] ERRO - AccessDeniedAcesso negado70941BB8654CE12EJssG1wXtZSjiGO8oVb9B46NNkn24TpZToD4u/KZAFaPBFBECF7YDMPnckVpyhaDE 2011-11-23 08:36:11.404 [S3] [4] ERRO - InternalListBucketCall falhou para bucket: secure_bucket, prefixo:, marcador:, maxkeys: 1, delimitador: / CloudBerryLab.Base.Exceptions.Status403Exception Acesso negado

23/11/2011 08:36:11,407 [UI] [4] ERRO - Operação concluída com erros. Clique em Detalhes para obter mais informações. CloudBerryLab.Base.Exceptions.Status403Exception Acesso negado em kT.A(String , String , String , Int32 , String , FH ) em kT.B(String , String ) em kM.a(String , Boolean ) em HW.a(String , Boolean ) em HW.A(String ) em CloudBerryLab.Explorer.Console.Controls.PluginArea.A(Object , DoWorkEventArgs )

23/11/2011 08:36:18.776 [Base] [11] INFO - PROCESSOR_ARCHITECTURE = x86

Responder1

Não sou especialista em s3, mas você tentou conceder o privilégio ListAllMyBuckets? Tive esse problema ao tentar acessar s3 usando s3cmd de uma instância ec2, embora tenha concedido todos os privilégios com:* Tive que conceder explicitamente o privilégio ListAllMyBuckets:

"Sid": "Stmt1397683550000",
  "Effect": "Allow",
  "Action": [
    "s3:ListAllMyBuckets"
  ],
  "Resource": [
    "arn:aws:s3:::mybucketname"
  ]

informação relacionada