내용으로 건너뛰기

다른 AWS 계정의 사용자에게 Amazon S3 버킷에 개체를 업로드할 수 있도록 액세스 권한을 부여하려면 어떻게 해야 하나요?

2분 분량
0

다른 계정의 AWS Identity and Access Management(IAM) 사용자에게 내 Amazon Simple Storage Service(S3) 버킷 액세스 권한을 부여하려고 합니다. 또한 해당 사용자가 내 Amazon S3 버킷에 객체를 업로드할 수 있도록 계정 간 액세스 권한을 부여하고 싶습니다.

해결 방법

계정 A의 IAM 사용자에게 액세스 권한을 부여해 계정 B의 S3 버킷에 개체를 업로드하려면 다음 단계를 따르세요.

  1. 계정 A에서 정책을 IAM 사용자에게 연결합니다. 정책을 통해 해당 사용자가 계정 B의 버킷에서 s3:PutObjects3: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 control ACL과 같은 ACL이 있는 개체를 업로드할 때 Access Denied 오류가 발생합니다.

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

  3. 계정 B에서 계정 A의 IAM 사용자에게 s3:PutObjects3: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/*"
          ]
        }
      ]
    }

    중요: 주요 값의 경우 계정 A에 IAM 사용자의 ARN을 입력해야 합니다.

이제 IAM 사용자가 Amazon S3에 개체를 업로드할 수 있습니다.

관련 정보

예 2: 버킷 소유자가 계정 간 버킷 권한 부여