요청 인증 및 권한 부여

요청 인증 및 권한 부여 (Authenticating and authorizing requests)

기본적으로 디렉터리 버킷은 프라이빗이며 명시적으로 접근 권한을 부여받은 사용자만 접근할 수 있어요. 디렉터리 버킷의 접근 제어 경계(boundary)는 버킷 수준에서만 설정돼요. 반면 일반 용도 버킷의 접근 제어 경계는 버킷, 접두사, 객체 태그 수준에서 설정할 수 있어요. 이 차이는 S3 Express One Zone 접근을 위해 버킷 정책이나 IAM ID 정책에 포함할 수 있는 리소스가 디렉터리 버킷뿐이라는 뜻이에요.

출처: 문서

본문

Amazon S3 Express One Zone은 AWS Identity and Access Management(AWS IAM) 권한 부여와 세션 기반 권한 부여를 모두 지원해요.

  • S3 Express One Zone으로 Regional 엔드포인트 API 작업(버킷 수준, 즉 제어 플레인 작업)을 사용하려면 IAM 권한 부여 모델을 사용해요. 이 모델에는 세션 관리가 포함되지 않아요. 작업마다 개별적으로 권한이 부여돼요. 자세한 내용은 IAM으로 Regional 엔드포인트 API 작업 권한 부여 를 참고하세요.
  • CopyObject와 HeadBucket을 제외한 Zonal 엔드포인트 API 작업(객체 수준, 즉 데이터 플레인 작업)을 사용하려면 CreateSession API 작업으로 데이터 요청의 낮은 지연 시간 권한 부여에 최적화된 세션을 만들고 관리해요. 세션 토큰을 검색하고 사용하려면 ID 기반 정책이나 버킷 정책에서 디렉터리 버킷에 s3express:CreateSession 작업을 허용해야 해요. 자세한 내용은 IAM으로 Regional 엔드포인트 API 작업 권한 부여 를 참고하세요. Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), 또는 AWS SDK로 S3 Express One Zone에 접근한다면 S3 Express One Zone이 사용자를 대신해 세션을 만들어요.

CreateSession API 작업으로 새 세션 기반 메커니즘을 통해 요청을 인증하고 권한을 부여할 수 있어요. CreateSession을 사용해 버킷에 낮은 지연 시간 접근을 제공하는 임시 자격 증명을 요청할 수 있어요. 이 임시 자격 증명은 특정 디렉터리 버킷으로 범위가 지정돼요.

CreateSession을 다룰 때는 최신 버전의 AWS SDK를 사용하거나 AWS CLI를 사용하는 것을 권장해요. 지원되는 AWS SDK와 AWS CLI는 세션 설정, 갱신, 종료를 사용자를 대신해 처리해요.

세션 토큰은 CopyObject와 HeadBucket을 제외한 Zonal(객체 수준) 작업에만 사용해요. 이렇게 하면 권한 부여와 관련된 지연 시간을 세션의 여러 요청에 걸쳐 분산시킬 수 있어요. Regional 엔드포인트 API 작업(버킷 수준 작업)에는 세션 관리가 필요 없는 IAM 권한 부여를 사용해요. 자세한 내용은 IAM으로 Regional 엔드포인트 API 작업 권한 부여 와 CreateSession으로 Zonal 엔드포인트 API 작업 권한 부여 를 참고하세요.

API 작업의 인증 및 권한 부여 방식

다음 표는 디렉터리 버킷 API 작업의 인증 및 권한 부여 정보를 보여줘요. 각 API 작업에 대해 API 작업 이름, IAM 정책 작업, 엔드포인트 유형(Regional 또는 Zonal), 권한 부여 메커니즘(IAM 또는 세션 기반)을 보여줘요. 또한 이 표는 교차 계정 접근이 지원되는지도 나타내요. 버킷 수준 작업에 대한 접근은 IAM ID 기반 정책(사용자 또는 역할)에서만 부여할 수 있고, 버킷 정책에서는 부여할 수 없어요.

| API | Endpoint type | IAM action | Cross-account access | | CreateBucket | Regional | s3express:CreateBucket | No | | DeleteBucket | Regional | s3express:DeleteBucket | No | | DeleteBucketInventoryConfiguration | Regional | s3express:PutInventoryConfiguration | No | | DeleteBucketPolicy | Regional | s3express:DeleteBucketPolicy | No | | GetBucketInventoryConfiguration | Regional | s3express:GetInventoryConfiguration | No | | GetBucketPolicy | Regional | s3express:GetBucketPolicy | No | | ListBucketInventoryConfigurations | Regional | s3express:GetInventoryConfiguration | No | | ListDirectoryBuckets | Regional | s3express:ListAllMyDirectoryBuckets | No | | PutBucketInventoryConfiguration | Regional | s3express:PutInventoryConfiguration | No | | PutBucketPolicy | Regional | s3express:PutBucketPolicy | No | | CreateSession | Zonal | s3express:CreateSession | Yes | | CopyObject | Zonal | s3express:CreateSession | Yes | | DeleteObject | Zonal | s3express:CreateSession | Yes | | DeleteObjects | Zonal | s3express:CreateSession | Yes | | HeadObject | Zonal | s3express:CreateSession | Yes | | PutObject | Zonal | s3express:CreateSession | Yes | | RenameObject | Zonal | s3express:CreateSession | No | | GetObjectAttributes | Zonal | s3express:CreateSession | Yes | | ListObjectsV2 | Zonal | s3express:CreateSession | Yes | | HeadBucket | Zonal | s3express:CreateSession | Yes | | CreateMultipartUpload | Zonal | s3express:CreateSession | Yes | | UploadPart | Zonal | s3express:CreateSession | Yes | | UploadPartCopy | Zonal | s3express:CreateSession | Yes | | CompleteMultipartUpload | Zonal | s3express:CreateSession | Yes | | AbortMultipartUpload | Zonal | s3express:CreateSession | Yes | | ListParts | Zonal | s3express:CreateSession | Yes | | ListMultipartUploads | Zonal | s3express:CreateSession | Yes | | ListAccessPointsForDirectoryBuckets | Zonal | s3express:ListAccessPointsForDirectoryBuckets | Yes | | GetAccessPointScope | Zonal | s3express:GetAccessPointScope | Yes | | PutAccessPointScope | Zonal | s3express:PutAccessPointScope | Yes | | DeleteAccessPointScope | Zonal | s3express:DeleteAccessPointScope | Yes |

더 알아보기 (Learn more)