다른 AWS 계정의 사용자에게 내 Amazon S3 버킷에 객체를 업로드할 수 있는 액세스 권한을 부여하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 10일

다른 계정의 AWS Identity and Access Management(IAM) 사용자에게 내 Amazon S3(Amazon Simple Storage Service) 버킷에 대한 액세스 권한을 부여하려고 합니다. 사용자는 내 Amazon S3 버킷에 객체를 업로드하려고 합니다. 이 계정 간 액세스 권한은 어떻게 부여합니까?

해결 방법

계정 A의 IAM 사용자에게 계정 B의 S3 버킷에 객체를 업로드할 수 있는 액세스 권한을 부여하려면 다음 단계를 따릅니다.

1.    계정 A에서 IAM 사용자에게 정책을 연결합니다. 정책에서는 사용자가 계정 B의 버킷에서 s3:PutObject 및 s3:PutObjectAcl 작업을 실행할 수 있도록 허용해야 합니다.

예를 들어 다음과 같습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"      
            ],
            "Resource": [
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
            ]
        }
    ]
}

참고: 업로드 중에 객체 ACL(액세스 제어 목록)을 지정해야 하는 사용자에게는 s3:PutObjectAcl 권한이 필요합니다. 사용자에게 이 권한이 없으면 bucket-owner-full 제어 ACL과 같은 ACL이 있는 객체를 업로드할 때 액세스 거부 오류가 발생합니다.

2.    계정 A에서 IAM 사용자의 Amazon 리소스 이름(ARN)을 확인합니다.

3.    계정 B에서, 계정 A의 IAM 사용자에게 s3:PutObject 및 s3:PutObjectAcl 작업을 실행할 수 있는 권한을 부여하는 버킷 정책을 연결합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::999999999999:user/UploadData"},
            "Action": ["s3:PutObject", "s3:PutObjectAcl"],
            "Resource": [
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
                "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
            ]
        }
    ]
}

중요: Principal의 값으로는 계정 A에 있는 IAM 사용자의 ARN을 입력해야 합니다.

계정 A에서 IAM 사용자 정책을 설정하고 계정 B에서 버킷 정책을 설정하고 나면 IAM 사용자가 Amazon S3에 객체를 업로드할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?