사용자에게 특정 버킷 또는 폴더에 대해서만 Amazon S3 콘솔 액세스 권한을 부여하려면 어떻게 해야 합니까?

3분 분량
0

사용자에게 버킷 또는 폴더(접두사)에 대한 Amazon Simple Storage Service(Amazon S3) 콘솔 액세스 권한을 부여하고 싶습니다. 하지만 사용자가 계정의 다른 버킷이나 버킷 내의 다른 폴더를 볼 수 없도록 하고 싶습니다.

간략한 설명

사용자의 AWS Identity and Access Management(IAM) 권한을 변경하여 사용자의 Amazon S3 콘솔 액세스를 특정 버킷 또는 폴더(접두사)로 제한합니다.

1.    s3:ListAllMyBuckets 작업에 대한 권한을 제거합니다.

2.    사용자가 액세스하기를 원하는 버킷 또는 폴더에 대해서만 s3:ListBucket에 권한을 추가합니다. 사용자가 버킷이나 폴더에서 개체를 업로드 및 다운로드할 수 있도록 하려면 s3:PutObjects3:GetObject도 포함해야 합니다.

해결 방법

1.    IAM 콘솔을 엽니다.

2.    액세스를 제한하려는 IAM 사용자 또는 역할을 선택합니다.

3.    IAM 사용자 또는 역할의 권한 탭에서 각 정책을 확장하여 해당 JSON 정책 문서를 확인합니다.

4.    JSON 정책 문서에서 사용자에게 s3:ListAllMyBuckets 작업 또는 s3:* 작업(모든 S3 작업)에 대한 권한을 부여하는 정책을 검색합니다.

5.    정책을 수정하여 s3:ListAllMyBuckets 작업에 대한 권한을 제거합니다.

참고: 연결된 사용자 정책에서 "*" 리소스로 s3:* 또는 전체 관리자 액세스를 허용하는 경우 정책에 s3:ListAllMyBuckets 권한이 포함됩니다. "*" 리소스를 제거합니다. 그런 후 다음 예시 정책 중 하나를 사용합니다.

6.    사용자가 콘솔에서 액세스할 버킷 또는 폴더에 대해서만 s3:ListBucket에 권한을 추가합니다.

다음은 S3 버킷에 액세스하기 위한 예시 정책입니다.

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

이 정책에 따라 사용자는 DOC-EXAMPLE-BUCKET에서만 s3:ListBucket ,s3:PutObjects3:GetObject작업을 수행할 수 있습니다 .

다음 예시 정책은 폴더에 대한 액세스 권한을 부여합니다. 이 정책에 따라 사용자는 DOC-EXAMPLE-BUCKET내의 folder2에서만 s3:ListBucket, s3:ListBucketVersions, s3:PutObject, s3:GetObjects3:GetObjectVersion 작업을 수행할 수 있습니다. 버킷에 버전 관리가 있고 사용자가 이전 버전의 개체에 액세스할 수 있도록 하려는 경우에만 s3:ListBucketVersions, s3:GetObjectVersions3:GetBucketVersioning을 사용하십시오.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowUsersToAccessFolder2Only",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/folder1/folder2/*"
      ]
    },
    {
      "Sid": "AllowListOfBucketOnlyOnPrefix",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:ListBucketVersions"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ],
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "folder1/folder2/*"
          ]
        }
      }
    },
    {
      "Sid": "AllowListVersionOnObjectDetails",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning"
      ],
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ]
    }
  ]
}

7.    사용자에게 S3 버킷 또는 폴더에 대한 다이렉트 콘솔 링크를 제공합니다.

경고: 이러한 권한을 변경한 후 사용자가 주 Amazon S3 콘솔에 액세스할 때 액세스 거부 오류가 발생합니다. 사용자는 다이렉트 콘솔 링크를 사용하여 버킷이나 폴더에 액세스해야 합니다.

다음 링크는 S3 버킷에 대한 다이렉트 콘솔 링크의 예시입니다.

https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/

다음 링크는 폴더에 대한 다이렉트 콘솔 링크의 예시입니다.

https://s3.console.aws.amazon.com/s3/buckets/DOC-EXAMPLE-BUCKET/folder1/folder2/

관련 정보

사용자 정책 예시

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