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

2분 분량
0

다른 계정의 AWS ID 및 액세스 관리 (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 권한이 있어야 합니다. 그렇지 않은 경우, 버킷 소유자 전체 제어 ACL 등의 ACL이 있는 객체를 업로드할 때 액세스 거부 오류가 발생합니다.

  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/*"
          ]
        }
      ]
    }

    **중요:**Principal 값에는 계정 A에 존재하는 IAM 사용자의 ARN을 입력해야 합니다.

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

관련 정보

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

AWS 공식
AWS 공식업데이트됨 6달 전