보호된 버킷 @ S3 - 액세스가 거부되었습니다.

보호된 버킷 @ S3 - 액세스가 거부되었습니다.

다음 버킷 정책을 사용하여 특정 사용자에게 특정 버킷에 대한 RW 액세스 권한을 부여하려고 합니다.

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

내가 알 수 있는 한 그것은 다음의 예제와 꽤 동일합니다.http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?AccessPolicyLanguage_UseCases_s3_a.html그리고 나는 다음에 문서화된 내용을 따랐습니다.http://docs.amazonwebservices.com/IAM/latest/GettingStartedGuide/index.html?SetUpAdminsGroup.html

하지만 작동하지 않습니다. .NET SDK 또는 CloudBerry Explorer에서 사용자 AWS 키 및 비밀 키를 사용하면"접근 불가"오류.

내가 무엇을 놓치고 있나요?

다음 로그는 Cloudberry가 시도한 작업 로그의 일부입니다.

System.Net.WebException 서버 원격 응답 오류: (403) Proibido. em System.Net.HttpWebRequest.GetResponse() em db.A(dD , Action`1 , HttpWebRequest , dW )

2011-11-23 08:36:10,505 [S3] [4] INFO - InternalListBucketCall 시작, 버킷: secure_bucket, 접두사: , 마커: , maxkeys: 1, 구분 기호: / 2011-11-23 08:36:11,388 [S3 ] [4] ERROR - Http 응답 상태: 403: 금지됨 2011-11-23 08:36:11,390 [S3] [4] ERROR - Http 응답 헤더: x-amz-request-id: 70941BB8654CE12E 2011-11-23 08 :36:11,392 [S3] [4] 오류 - HTTP 응답 헤더: x-amz-id-2: JssG1wXtZSjiGO8oVb9B46NNkn24TpZToD4u/KZAFaPBFBECF7YDMPnckVpyhaDE 2011-11-23 08:36:11,394 [S3] [4] 오류 - HTTP 응답 헤더: 전송 -인코딩: 청크 2011-11-23 08:36:11,396 [S3] [4] ERROR - Http 응답 헤더: Content-Type: application/xml 2011-11-23 08:36:11,398 [S3] [4] ERROR - HTTP 응답 헤더: 날짜: Wed, 2011년 11월 23일 10:36:31 GMT 2011-11-23 08:36:11,400 [S3] [4] ERROR - HTTP 응답 헤더: 서버: AmazonS3 2011-11-23 08: 36:11,402 [S3] [4] 오류 - AccessDenied액세스 거부됨70941BB8654CE12EJssG1wXtZSjiGO8oVb9B46NNkn24TpZToD4u/KZAFaPBFBECF7YDMPnckVpyhaDE 2011-11-23 08:36:11,404 [S3] [4] ERR 또는 - 버킷: secure_bucket, 접두사: , 마커: , maxkeys: 1에 대해 InternalListBucketCall이 실패했습니다. 구분 기호: / CloudBerryLab.Base.Exceptions.Status403Exception 액세스가 거부되었습니다.

2011-11-23 08:36:11,407 [UI] [4] ERROR - 오류가 발생하여 작업이 완료되었습니다. 자세한 내용을 보려면 세부정보를 클릭하세요. CloudBerryLab.Base.Exceptions.Status403Exception 액세스가 거부되었습니다. em kT.A(String , String , String , Int32 , String , FH ) em kT.B(String , String ) em kM.a(String , Boolean ) em HW.a(String , 부울 ) em HW.A(String ) em CloudBerryLab.Explorer.Console.Controls.PluginArea.A(Object , DoWorkEventArgs )

2011-11-23 08:36:18,776 [기본] [11] INFO - PROCESSOR_ARCHITECTURE=x86

답변1

저는 s3 전문가는 아니지만 ListAllMyBuckets 권한을 부여해 보셨나요? 다음을 사용하여 모든 권한을 부여했지만 ec2 인스턴스에서 s3cmd를 사용하여 s3에 액세스하려고 할 때 이 문제가 발생했습니다. * ListAllMyBuckets 권한을 명시적으로 부여해야 했습니다.

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

관련 정보