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

최종 업데이트 날짜: 2020년 8월 6일

사용자에게 버킷 또는 폴더(접두사)에 대한 Amazon Simple Storage Service(Amazon S3) 콘솔 액세스 권한을 부여하고 싶습니다. 그러나 사용자가 계정의 다른 버킷 또는 버킷의 다른 폴더는 보지 못하게 하고 싶습니다. 사용자의 콘솔 액세스를 특정 버킷 또는 폴더로 제한하려면 어떻게 해야 합니까?

간략한 설명

사용자의 Amazon S3 콘솔 액세스를 특정 버킷 또는 폴더(접두사)로 제한하려면 사용자의 AWS Identity and Access Management(IAM) 권한에서 다음 사항을 변경하십시오.

  1. s3:ListAllMyBuckets 작업에 대한 권한을 제거하십시오.
  2. 사용자가 액세스하도록 허용하려는 버킷 또는 폴더에 대해서만 s3:ListBucket 권한을 추가하십시오.
    참고: 사용자가 버킷 또는 폴더에서 객체를 업로드하고 다운로드하도록 허용하려면 s3:PutObjects3:GetObject도 포함해야 합니다.

경고: 이러한 권한을 변경한 후에는 사용자가 주 Amazon S3 콘솔에 액세스할 때 Access Denied(액세스 거부) 오류가 발생합니다. 사용자는 버킷 또는 폴더에 대한 직접 콘솔 링크를 사용하여 버킷에 액세스해야 합니다. 버킷에 대한 직접 콘솔 링크는 다음과 유사합니다.

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

folder2 예와 같은 폴더에 대한 직접 콘솔 링크는 다음과 유사합니다.

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

참고: Amazon S3는 파일 계층 구조 대신 플랫 데이터 구조를 사용합니다. 콘솔은 파일을 그룹화하고 구성하는 수단으로서 폴더 개념을 지원합니다.

​해결 방법

콘솔 액세스에 대한 사용자의 IAM 권한을 특정 버킷 또는 폴더로 업데이트하려면 다음 단계를 따르십시오.

1.    IAM 콘솔을 엽니다.

2.    콘솔에서 특정 버킷에만 액세스해야 하는 IAM 사용자 또는 역할을 엽니다.

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

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

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

6.    그런 다음, s3:ListBucket 에 사용자가 콘솔에서 액세스하도록 하려는 버킷 또는 폴더에 대한 권한만을 추가합니다.

다음 예제 정책은 버킷에 대한 액세스를 제공합니다. 예를 들어 이 정책은 사용자가 AWSDOC-EXAMPLE-BUCKET에 대해서만 s3:ListBucket, s3:PutObject 및 s3:GetObject 작업을 수행하도록 허용합니다.

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

다음 예제 정책은 폴더에 대한 액세스를 제공합니다. 예를 들어 이 정책은 사용자가 AWSDOC-EXAMPLE-BUCKET 내의 folder2 폴더에 대해서만 s3:ListBucket, s3:PutObject 및 s3:GetObject 작업을 수행하도록 허용합니다.

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

7.    사용자에게 버킷 또는 폴더에 대한 직접 콘솔 링크를 제공합니다. 버킷에 대한 직접 콘솔 링크는 다음과 유사합니다.

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

폴더에 대한 직접 콘솔 링크는 다음과 유사합니다. 

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

사용자는 직접 링크를 사용하여 콘솔에서 버킷 또는 폴더에 액세스할 수 있어야 합니다.


이 문서가 도움이 되었습니까?


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