AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 어떤 사용자가 S3 Express One Zone 리소스를 사용할 수 있도록 인증(로그인)되고 권한이 부여(권한 보유)될 수 있는지 제어합니다. IAM은 추가 요금 없이 사용할 수 있습니다.
기본적으로 사용자는 디렉터리 버킷 및 S3 Express One Zone 작업에 대한 권한이 없습니다. 디렉터리 버킷에 대한 액세스 권한을 부여하려면 IAM을 사용하여 사용자, 그룹 또는 역할을 생성하고 해당 ID에 권한을 연결하면 됩니다. IAM에 대한 자세한 내용은 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하세요.
액세스 권한을 제공하려면 다음 방법을 사용하여 사용자, 그룹 또는 역할에 권한을 추가하면 됩니다.
-
AWS IAM Identity Center 내의 사용자 및 그룹 - 권한 세트를 생성합니다. AWS IAM Identity Center 사용 설명서의 권한 세트 생성의 지침을 따릅니다.
-
ID 제공업체를 통해 IAM에서 관리되는 사용자 - ID 페더레이션을 위한 역할을 생성합니다. IAM 사용 설명서의 서드 파티 자격 증명 공급자의 역할 만들기(페더레이션)의 지침을 따릅니다.
-
IAM 역할 및 사용자 - 사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용 설명서에서 역할을 생성하여 IAM 사용자에게 권한 위임의 지침을 따르세요.
IAM for S3 Express One Zone에 대한 자세한 내용은 다음 주제를 참조하세요.
보안 주체
버킷에 대한 액세스 권한을 부여하는 리소스 기반 정책을 생성할 때, Principal
요소를 사용하여 해당 리소스에 대한 작업이나 작업을 요청할 수 있는 사람 또는 애플리케이션을 지정해야 합니다. 디렉터리 버킷 정책의 경우, 다음 보안 주체를 사용할 수 있습니다.
-
AWS 계정
-
IAM 사용자
-
IAM 역할
-
페더레이션 사용자
자세한 내용은 IAM 사용 설명서에서 Principal 섹션을 참조하십시오.
리소스
디렉터리 버킷의 Amazon 리소스 이름(ARN)에는 s3express
네임스페이스, AWS 리전, AWS 계정 ID 및 디렉터리 버킷 이름(가용 영역 ID 포함)이 포함됩니다. 디렉터리 버킷에 액세스하고 작업을 수행하려면 다음 ARN 형식을 사용해야 합니다.
arn:aws:s3express:
region
:account-id
:bucket/base-bucket-name
--zone-id
--x-s3
ARN에 대한 자세한 내용은 IAM 사용 설명서의 Amazon Resource Names (ARNs) 섹션을 참조하세요. 리소스에 대한 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: Resource를 참조하세요.
디렉터리 버킷에 대한 작업
IAM ID 기반 정책 또는 리소스 기반 정책에서 어떤 S3 작업을 허용 또는 거부할지 정의합니다. 작업은 특정 API 작업에 해당합니다. 디렉터리 버킷을 사용할 경우 S3 Express One Zone 네임스페이스를 사용하여 권한을 부여할 수 있습니다. 이 네임스페이스는 s3express
입니다.
s3express:CreateSession
권한을 허용하면 CreateSession
API 작업에서 영역 엔드포인트 API 작업, 즉 객체 수준 작업에 액세스할 때 세션 토큰을 검색할 수 있습니다. 이러한 세션 토큰은 다른 모든 영역 엔드포인트 API 작업에 대한 액세스 권한을 부여하는 데 사용되는 자격 증명을 반환합니다. 따라서 IAM 정책을 사용하여 영역 API 작업에 액세스 권한을 부여할 필요가 없습니다. 대신 세션 토큰을 사용하면 액세스가 가능합니다. 영역 엔드포인트 API 작업 및 권한 목록은 요청 인증 및 권한 부여를 참조하세요.
영역 및 리전 엔드포인트 API 작업에 대한 자세한 내용은 디렉터리 버킷에 대한 네트워킹 섹션을 참조하세요. CreateSession
API 작업에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 CreateSession 섹션을 참조하세요.
IAM 정책 설명의 Action
요소에서는 다음 작업을 지정할 수 있습니다. 정책을 사용하여 AWS에서 작업할 수 있는 권한을 부여합니다. 정책에서 작업을 사용하면 일반적으로 이름이 같은 API 작업에 대한 액세스를 허용하거나 거부합니다. 그러나 경우에 따라 하나의 API 작업으로 둘 이상의 작업에 대한 액세스가 제어됩니다. 버킷 수준 작업에 대한 액세스는 IAM ID 기반 정책(사용자 또는 역할)에서만 부여할 수 있으며 버킷 정책으로는 부여할 수 없습니다.
다음 테이블은 작업 및 조건 키를 보여줍니다.
작업 | API | 설명 | 액세스 레벨 | 조건 키 |
---|---|---|---|---|
s3express:CreateBucket
|
CreateBucket |
새 버킷을 생성할 수 있는 권한을 부여합니다. |
쓰기 |
|
s3express:CreateSession |
영역 엔드포인트 API 작업 |
모든 영역(객체 수준) API 작업(예: |
쓰기 |
|
s3express:DeleteBucket |
DeleteBucket |
URI에 이름이 지정된 버킷을 삭제할 권한을 부여합니다. |
쓰기 |
|
s3express:DeleteBucketPolicy |
DeleteBucketPolicy |
지정된 버킷에서 정책을 삭제할 수 있는 권한을 부여합니다. |
권한 관리 |
|
s3express:GetBucketPolicy |
GetBucketPolicy |
지정된 버킷의 정책을 반환할 수 있는 권한을 부여합니다. |
읽기 |
|
s3express:GetEncryptionConfiguration |
GetBucketEncryption |
디렉터리 버킷의 기본 암호화 구성을 반환할 수 있는 권한을 부여합니다. |
읽기 |
|
s3express:ListAllMyDirectoryBuckets |
ListDirectoryBuckets |
요청의 인증된 발신자가 소유한 모든 디렉터리 버킷을 나열할 수 있는 권한을 부여합니다. |
나열 |
|
s3express:PutBucketPolicy |
PutBucketPolicy |
버킷에 버킷 정책을 추가하거나 교체할 수 있는 권한을 부여합니다. |
권한 관리 |
|
s3express:PutBucketPolicy |
PutBucketPolicy |
버킷에 버킷 정책을 추가하거나 교체할 수 있는 권한을 부여합니다. |
권한 관리 |
|
s3express:PutEncryptionConfiguration |
PutBucketEncryption 또는 DeleteBucketEncryption |
디렉터리 버킷에 대한 암호화 구성을 설정할 수 있는 권한을 부여합니다. |
쓰기 |
|
디렉터리 버킷의 조건 키
다음은 IAM 정책의 Condition
요소에 사용할 수 있는 조건 키입니다. 이러한 키를 사용하여 정책 설명이 적용되는 조건을 보다 상세하게 설정할 수 있습니다.
조건 키 | 설명 | 유형 |
---|---|---|
s3express:authType |
인증 방법을 기준으로 액세스를 필터링합니다. 특정 인증 방법을 사용하도록 수신 요청을 제한하려면 이 선택적 조건 키를 사용할 수 있습니다. 예를 들어 이 조건 키를 사용하여 요청 인증에 HTTP 유효한 값: |
String |
s3express:LocationName |
특정 가용 영역 ID(AZ ID, 예: 예시 값: |
String |
s3express:ResourceAccount |
리소스 소유자의 AWS 계정 ID로 액세스를 필터링합니다. 특정 AWS 계정 ID가 소유한 디렉터리 버킷에 대한 사용자, 역할 또는 애플리케이션 액세스를 제한하려면 예시 값: |
String |
s3express:SessionMode |
유효한 값: |
String |
s3express:signatureAge |
요청 서명의 시간(밀리초)을 기준으로 액세스를 필터링합니다. 이 조건은 미리 서명된 URL에만 적용됩니다. AWS Signature Version 4에서는 서명 키가 최대 7일간 유효합니다. 따라서 서명도 최대 7일간 유효합니다. 자세한 내용은 Amazon Simple Storage Service API 참조의 서명 요청 소개를 참조하세요. 이 조건을 사용하여 서명 연령을 추가로 제한할 수 있습니다. 예시 값: |
Numeric |
s3express:signatureversion |
인증된 요청에 대해 지원하려는 AWS Signature의 버전을 식별합니다. 인증 요청의 경우 Signature Version 4가 지원됩니다. 유효한 값: |
String |
s3express:TlsVersion |
클라이언트에서 사용한 TLS 버전별로 액세스를 필터링합니다.
예시 값: |
Numeric |
s3express:x-amz-content-sha256 |
버킷의 서명되지 않은 콘텐츠를 기준으로 액세스를 필터링합니다. 이 조건 키를 사용하여 버킷에서 서명되지 않은 콘텐츠를 허용하지 않을 수 있습니다.
버킷 정책에서 이 조건 키를 사용하여 페이로드가 서명되지 않은 업로드를 거부할 수 있습니다. 예시:
유효한 값: |
String |
s3express:x-amz-server-side-encryption |
서버 측 암호화를 기준으로 액세스를 필터링합니다. 유효한 값: |
String |
s3express:x-amz-server-side-encryption-aws-kms-key-id |
서버 측 암호화용 AWS KMS 고객 관리형 키를 기준으로 액세스 필터링 예시 값: |
ARN |