2017-12-18 32 views
1

내 버킷에 get_objectput_object을 사용하여 개체를 가져올 수 있지만 copy_object을 실행할 수 없습니다. 현재 Python의 Boto3을 사용하고 있습니다. IAM 작업에서 get*put을 허용하지만 그 밖의 무엇이 필요합니까?파일을 복사하는 데 필요한 S3 IAM 작업의 유형은 무엇입니까?

오류 : An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied

copy_source = { 
    'Bucket': 'mybucket', 
    'Key': 's3/B.csv' 
} 
response = client.copy_object(Bucket=bucket, CopySource=copy_source, Key='test/copied.csv') 
+1

"copy_object를 실행할 수 없습니다"- 오류/메시지가 포함되도록 질문을 편집하십시오. 뿐만 아니라 그것을 일으키는 코드. – Mendhak

+1

원본 및 대상 버킷 모두에 IAM 권한이 있습니까? – helloV

+0

예, 원본 버킷과 대상 버켓이 동일한 버켓으로되어 있고이 오류가 발생했습니다. – simplycoding

답변

0

이 당신은 항상 사용자 액세스를 체크 아웃 Policy simulator를 사용할 수있는 기본 버킷 정책

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "DaveBucketAccess", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::AccountB-ID:user/Dave" 
      }, 
      "Action": ["s3:ListObject", "s3:PutObject","s3:GetObject"], 
      "Resource": [ 
       "arn:aws:s3:::examplebucket/*", 
       "arn:aws:s3:::examplebucket/"] 
     } 
    ] 
} 

입니다. 추론 방법을 사용할 수도 있습니다. 즉, "Action" : "s3:*"을 사용하여 모든 액세스를 먼저 열어 사용자에게 아무런 문제가 없는지 확인한 다음 하나씩 액세스를 닫습니다.