AWS Identity and Access Management (IAM) for S3 Express One Zone - Amazon Simple Storage Service

AWS Identity and Access Management (IAM) for S3 Express One Zone

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 어떤 사용자가 S3 Express One Zone 리소스를 사용할 수 있도록 인증(로그인)되고 권한이 부여(권한 보유)될 수 있는지 제어합니다. IAM은 추가 요금 없이 사용할 수 있습니다.

기본적으로 사용자는 디렉터리 버킷 및 S3 Express One Zone 작업에 대한 권한이 없습니다. 디렉터리 버킷에 대한 액세스 권한을 부여하려면 IAM을 사용하여 사용자, 그룹 또는 역할을 생성하고 해당 ID에 권한을 연결하면 됩니다. IAM에 대한 자세한 내용은 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하세요.

액세스 권한을 제공하려면 다음 방법을 사용하여 사용자, 그룹 또는 역할에 권한을 추가하면 됩니다.

기본적으로 디렉터리 버킷은 프라이빗이며 액세스 권한이 명시적으로 부여된 사용자만 액세스할 수 있습니다. 디렉터리 버킷의 액세스 제어 경계는 버킷 수준에서만 설정됩니다. 반면 범용 버킷의 액세스 제어 경계는 버킷, 접두사 또는 객체 태그 수준에서 설정할 수 있습니다. 이러한 차이는 디렉터리 버킷이 S3 Express One Zone 액세스에 대한 버킷 정책 또는 IAM ID 정책에 포함할 수 있는 유일한 리소스라는 것을 의미합니다.

S3 Express One Zone을 사용하면 IAM 권한 부여 외에도 CreateSession API 작업으로 처리되는 새로운 세션 기반 메커니즘을 통해 요청을 인증하고 권한을 부여할 수 있습니다. CreateSession을 사용하여 지연 시간이 짧은 버킷 액세스를 제공하는 임시 보안 인증 정보를 요청할 수 있습니다. 이러한 임시 보안 인증 정보의 범위는 특정 디렉터리 버킷으로 지정됩니다.

CreateSession 작업을 수행하려면 최신 버전의 AWS SDK를 사용하거나 AWS Command Line Interface(AWS CLI)를 사용하는 것이 좋습니다. 지원되는 AWS SDK와 AWS CLI가 세션 설정, 새로 고침 및 종료를 사용자 대신 처리합니다.

영역(객체 수준) 작업에만 세션 토큰을 사용하여(CopyObjectHeadBucket 제외) 권한 부여와 관련된 지연 시간을 세션의 여러 요청에 분산합니다. 리전 엔드포인트 API 작업(버킷 수준 작업)의 경우 세션 관리가 필요하지 않은 IAM 인증을 사용합니다. 자세한 내용은 AWS Identity and Access Management (IAM) for S3 Express One Zone 및 CreateSession 권한 부여 단원을 참조하세요.

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--azid--x-s3

ARN에 대한 자세한 내용은 IAM 사용 설명서의 Amazon Resource Names (ARNs) 섹션을 참조하세요. 리소스에 대한 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: Resource를 참조하세요.

S3 Express One Zone에 대한 작업

IAM ID 기반 정책 또는 리소스 기반 정책에서 어떤 S3 작업을 허용 또는 거부할지 정의합니다. S3 Express One Zone 작업은 특정 API 작업에 해당합니다. S3 Express One Zone에는 Amazon S3의 표준 네임스페이스와는 다른 고유한 IAM 네임스페이스가 있습니다. 이 네임스페이스는 s3express입니다.

s3express:CreateSession 권한을 허용하면 CreateSession API 작업에서 영역 엔드포인트 API 작업, 즉 객체 수준 작업에 액세스할 때 세션 토큰을 검색할 수 있습니다. 이러한 세션 토큰은 다른 모든 영역 엔드포인트 API 작업에 대한 액세스 권한을 부여하는 데 사용되는 보안 인증 정보를 반환합니다. 따라서 IAM 정책을 사용하여 영역 API 작업에 액세스 권한을 부여할 필요가 없습니다. 대신 세션 토큰을 사용하면 액세스가 가능합니다.

영역 및 리전 엔드포인트 API 작업에 대한 자세한 내용은 S3 Express One Zone을 위한 네트워킹 섹션을 참조하세요. CreateSession API 작업에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 CreateSession 섹션을 참조하세요.

IAM 정책 설명의 Action 요소에서는 다음 작업을 지정할 수 있습니다. 정책을 사용하여 AWS에서 작업할 수 있는 권한을 부여합니다. 정책에서 작업을 사용하면 일반적으로 이름이 같은 API 작업에 대한 액세스를 허용하거나 거부합니다. 그러나 경우에 따라 하나의 API 작업으로 둘 이상의 작업에 대한 액세스가 제어됩니다. 버킷 수준 작업에 대한 액세스는 IAM ID 기반 정책(사용자 또는 역할)에서만 부여할 수 있으며 버킷 정책으로는 부여할 수 없습니다.

S3 Express One Zone에 사용되는 작업 및 조건 키
작업 API 설명 액세스 레벨 조건 키

s3express:CreateBucket

CreateBucket

새 버킷을 생성할 수 있는 권한을 부여합니다.

쓰기

s3express:authType

s3express:LocationName

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:CreateSession CreateSession

모든 영역(객체 수준) API 작업(예: PutObject, GetObject)에 대한 액세스 권한을 부여하는 데 사용되는 세션 토큰을 생성할 권한을 부여합니다.

쓰기

s3express:authType

s3express:SessionMode

s3express:ResourceAccount

s3express:signatureversion

s3express:signatureAge

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucket DeleteBucket

URI에 이름이 지정된 버킷을 삭제할 권한을 부여합니다.

쓰기

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucketPolicy DeleteBucketPolicy

지정된 버킷에서 정책을 삭제할 수 있는 권한을 부여합니다.

권한 관리

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:GetBucketPolicy GetBucketPolicy

지정된 버킷의 정책을 반환할 수 있는 권한을 부여합니다.

읽기

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:ListAllMyDirectoryBuckets ListDirectoryBuckets

요청의 인증된 발신자가 소유한 모든 디렉터리 버킷을 나열할 수 있는 권한을 부여합니다.

나열

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:PutBucketPolicy PutBucketPolicy

버킷에 버킷 정책을 추가하거나 교체할 수 있는 권한을 부여합니다.

권한 관리

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

S3 Express One Zone에 사용되는 조건 키

S3 Express One Zone은 IAM 정책의 Condition 요소에 사용할 수 있는 다음과 같은 조건 키를 정의합니다. 이러한 키를 사용하여 정책 설명이 적용되는 조건을 보다 상세하게 설정할 수 있습니다.

조건 키 설명 유형
s3express:authType

인증 방법을 기준으로 액세스를 필터링합니다. 특정 인증 방법을 사용하도록 수신 요청을 제한하려면 이 선택적 조건 키를 사용할 수 있습니다. 예를 들어 이 조건 키를 사용하여 요청 인증에 HTTP Authorization 헤더만 사용하도록 허용할 수 있습니다.

유효한 값: REST-HEADER, REST-QUERY-STRING

String
s3express:LocationName

특정 가용 영역 ID(AZ ID, 예: usw2-az1)를 기준으로 CreateBucket API 작업에 대한 액세스를 필터링합니다.

예시 값: usw2-az1

String
s3express:ResourceAccount

리소스 소유자의 AWS 계정 ID로 액세스를 필터링합니다.

특정 AWS 계정 ID가 소유한 디렉터리 버킷에 대한 사용자, 역할 또는 애플리케이션 액세스를 제한하려면 aws:ResourceAccount 또는 s3express:ResourceAccount 조건 키를 사용하면 됩니다. 이 조건 키는 AWS Identity and Access Management(IAM) 자격 증명 정책 또는 Virtual Private Cloud(VPC) 엔드포인트 정책에서 사용할 수 있습니다. 예를 들어, 이 조건 키를 사용하면 소유하지 않은 버킷에 VPC 내의 클라이언트가 액세스하는 것을 제한할 수 있습니다.

예시 값: 111122223333

String
s3express:SessionMode

CreateSession API 작업에서 요청한 권한을 기준으로 액세스를 필터링합니다. 기본적으로 세션은 ReadWrite입니다. 이 조건 키를 사용하여 액세스를 ReadOnly로 제한하거나 ReadWrite 액세스를 명시적으로 거부합니다. 자세한 내용은 Amazon Simple Storage Service API 참조의 S3 Express One Zone의 디렉터리 버킷 정책 예시 및 CreateSession을 참조하세요.

유효한 값: ReadWrite, ReadOnly

String
s3express:signatureAge

요청 서명의 시간(밀리초)을 기준으로 액세스를 필터링합니다. 이 조건은 미리 서명된 URL에만 적용됩니다.

AWS Signature Version 4에서는 서명 키가 최대 7일간 유효합니다. 따라서 서명도 최대 7일간 유효합니다. 자세한 내용은 Amazon Simple Storage Service API 참조서명 요청 소개를 참조하세요. 이 조건을 사용하여 서명 연령을 추가로 제한할 수 있습니다.

예시 값: 600000

숫자
s3express:signatureversion

인증된 요청에 대해 지원하려는 AWS Signature의 버전을 식별합니다. 인증된 요청의 경우 S3 Express One Zone은 Signature Version 4를 지원합니다.

유효한 값: "AWS4-HMAC-SHA256"(Signature Version 4를 식별)

String
s3express:TlsVersion

클라이언트에서 사용한 TLS 버전별로 액세스를 필터링합니다.

s3:TlsVersion 조건 키를 사용하면 IAM, Virtual Private Cloud 엔드포인트(VPCE) 또는 버킷 정책을 작성하여 클라이언트가 사용한 TLS 버전에 따라 디렉터리 버킷에 대한 사용자 또는 애플리케이션의 액세스를 제한할 수 있습니다. 또한 이 조건 키를 사용하여 최소 TLS 버전을 요구하는 정책을 작성할 수 있습니다.

예시 값: 1.3

숫자
s3express:x-amz-content-sha256

버킷의 서명되지 않은 콘텐츠를 기준으로 액세스를 필터링합니다.

이 조건 키를 사용하여 버킷에서 서명되지 않은 콘텐츠를 허용하지 않을 수 있습니다.

Authorization 헤더를 사용하는 요청에 대해 Signature Version 4를 사용할 때 서명 계산에 x-amz-content-sha256 헤더를 추가한 다음 해당 값을 해시 페이로드로 설정합니다.

버킷 정책에서 이 조건 키를 사용하여 페이로드가 서명되지 않은 업로드를 거부할 수 있습니다. 예:

유효한 값: UNSIGNED-PAYLOAD

String

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

다음 테이블에는 S3 Express One Zone API 작업에 대한 권한 부여 및 인증 정보가 나와 있습니다. 테이블에는 각 API 작업에 대해 API 작업 이름, IAM 작업, 엔드포인트 유형(리전 또는 영역), 권한 부여 메커니즘(IAM 또는 세션 기반)이 나와 있습니다. 또한 크로스 계정 액세스가 지원되는 곳도 나와 있습니다. 버킷 수준 작업에 대한 액세스는 IAM ID 기반 정책(사용자 또는 역할)에서만 부여할 수 있으며 버킷 정책으로는 부여할 수 없습니다.

API [엔드포인트 유형] IAM 작업 크로스 계정 액세스
CreateBucket 리전 s3express:CreateBucket 아니요
DeleteBucket 리전 s3express:DeleteBucket 아니요
ListDirectoryBuckets 리전 s3express:ListAllMyDirectoryBuckets 아니요
PutBucketPolicy 리전 s3express:PutBucketPolicy 아니요
GetBucketPolicy 리전 s3express:GetBucketPolicy 아니요
DeleteBucketPolicy 리전 s3express:DeleteBucketPolicy 아니요
CreateSession 영역 s3express:CreateSession
CopyObject 영역 s3express:CreateSession
DeleteObject 영역 s3express:CreateSession
DeleteObjects 영역 s3express:CreateSession
HeadObject 영역 s3express:CreateSession
PutObject 영역 s3express:CreateSession
GetObjectAttributes 영역 s3express:CreateSession
ListObjectsV2 영역 s3express:CreateSession
HeadBucket 영역 s3express:CreateSession
CreateMultipartUpload 영역 s3express:CreateSession
UploadPart 영역 s3express:CreateSession
UploadPartCopy 영역 s3express:CreateSession
CompleteMultipartUpload 영역 s3express:CreateSession
AbortMultipartUpload 영역 s3express:CreateSession
ListParts 영역 s3express:CreateSession
ListMultipartUploads 영역 s3express:CreateSession