디렉터리 버킷용 IAM ID 기반 정책

디렉터리 버킷용 IAM ID 기반 정책 (IAM identity-based policies for directory buckets)

디렉터리 버킷을 만들기 전에 AWS Identity and Access Management(IAM) 역할 또는 사용자에게 필요한 권한을 부여해야 해요. 아래 예제 정책은 CreateSession API 작업(Zonal 엔드포인트[객체 수준] API 작업에서 사용)과 모든 Regional 엔드포인트(버킷 수준) API 작업에 대한 접근을 허용해요. 이 정책은 CreateSession API 작업을 모든 디렉터리 버킷에서 사용하도록 허용하지만, Regional 엔드포인트 API 작업은 지정된 디렉터리 버킷에서만 사용하도록 허용해요. 이 예제 정책을 사용하려면 사용자 입력 자리표시자를 직접 채워 넣어야 해요.

출처: 문서

본문

참고

모범 사례로서 작업 수행에 필요한 권한만 부여하세요(최소 권한). 이 정책에서 사용 사례에 필요하지 않은 작업은 제거하세요. S3 Express One Zone 작업의 전체 목록은 Service Authorization Reference의 S3 Express One Zone 작업, 리소스, 조건 키 를 참고하세요.

예제 — 디렉터리 버킷 접근용 ID 기반 정책

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowRegionalEndpointAPIs",
            "Effect": "Allow",
            "Action": [
                "s3express:CreateBucket",
                "s3express:DeleteBucket",
                "s3express:DeleteBucketPolicy",
                "s3express:GetBucketPolicy",
                "s3express:PutBucketPolicy",
                "s3express:GetEncryptionConfiguration",
                "s3express:PutEncryptionConfiguration",
                "s3express:GetLifecycleConfiguration",
                "s3express:PutLifecycleConfiguration",
                "s3express:GetInventoryConfiguration",
                "s3express:PutInventoryConfiguration",
                "s3express:GetMetricsConfiguration",
                "s3express:PutMetricsConfiguration"
            ],
            "Resource": "arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3"
        },
        {
            "Sid": "AllowListAndCreateSession",
            "Effect": "Allow",
            "Action": [
                "s3express:ListAllMyDirectoryBuckets",
                "s3express:CreateSession"
            ],
            "Resource": "*"
        }
    ]
}

이 정책에는 두 개의 문(statement)이 있어요.

  • 첫 번째 문은 특정 디렉터리 버킷의 Regional 엔드포인트(버킷 수준) API 작업에 대한 권한을 부여해요. 사용 사례에 필요하지 않은 작업은 제거할 수 있어요.
  • 두 번째 문은 ListAllMyDirectoryBuckets와 CreateSession에 대한 권한을 부여해요. 이 작업들은 리소스 수준 권한을 지원하지 않으므로 Resource가 "*"이에요. CreateSession 권한은 PutObject, GetObject, DeleteObject 같은 모든 Zonal 엔드포인트(객체 수준) API 작업을 활성화해요.

더 알아보기 (Learn more)