S3 Access Grants를 통해 Amazon S3 데이터에 대한 액세스 요청
S3 Access Grants를 사용하여 액세스 권한을 생성한 후 피부여자는 액세스 권한이 부여된 S3 데이터에 액세스하기 위해 자격 증명을 요청할 수 있습니다. 피부여자는 AWS Identity and Access Management(IAM) 위탁자, 회사 디렉터리 자격 증명 또는 승인된 애플리케이션일 수 있습니다.
애플리케이션 또는 AWS 서비스가 S3 Access Grants GetDataAccess
API 작업을 사용하여 피부여자를 대신하여 S3 데이터에 대한 액세스를 S3 Access Grants에 요청하면, GetDataAccess
는 먼저 이 자격 증명에 해당 데이터에 대한 액세스 권한을 부여했는지 확인합니다. 그러면 S3 Access Grants가 AssumeRole API 작업을 사용하여 임시 자격 증명 토큰을 가져와 요청자에게 벤딩합니다. 이 임시 자격 증명 토큰은 AWS Security Token Service(AWS STS) 토큰입니다.
GetDataAccess
요청에는 임시 자격 증명이 적용되는 S3 데이터의 범위를 지정하는 target
파라미터가 포함되어야 합니다. 이 target
범위는 권한 부여 범위 또는 해당 범위의 하위 집합과 같을 수 있지만, target
범위는 피부여자에게 제공된 권한 부여 범위 내에 있어야 합니다. 또한 요청은 임시 자격 증명의 권한 수준(READ
, WRITE
또는 READWRITE
)을 나타내는 permission
파라미터를 지정해야 합니다.
권한
요청자는 자격 증명 요청에서 임시 토큰의 권한 수준을 지정할 수 있습니다. 요청자는 privilege
파라미터를 사용하여 권한 부여 범위 내에서 임시 자격 증명의 액세스 범위를 줄이거나 늘릴 수 있습니다. privilege
파라미터의 기본값은 Default
이며, 이는 반환되는 자격 증명의 대상 범위가 원래 권한 부여 범위임을 의미합니다. Minimal
또한 privilege
의 값이 될 수 있습니다. target
범위가 원래 권한 부여 범위보다 축소되면 target
범위가 권한 부여 범위 내에 있는 한 target
범위와 일치하도록 임시 자격 증명의 범위가 축소됩니다.
다음 테이블에는 두 권한 부여에 대한 privilege
파라미터의 효과가 자세히 나와 있습니다. 권한 부여의 범위는 S3://
이며, 여기에는 amzn-s3-demo-bucket1
/bob/*
버킷의 전체 amzn-s3-demo-bucket1
bob/
접두사가 포함됩니다. 다른 권한 부여의 범위는 S3://
이며, 여기에는 amzn-s3-demo-bucket1
/bob/reports/*
버킷의 amzn-s3-demo-bucket1
bob/reports/
접두사만 포함됩니다.
권한 부여 범위 | 요청된 범위 | 권한 | 반환된 범위 | Effect |
---|---|---|---|---|
S3:// |
|
Default
|
|
요청자는 |
S3:// |
|
Minimal
|
|
접두사 이름 |
S3:// |
|
Minimal
|
|
요청자는 |
S3:// |
|
Default
|
|
요청자는 |
S3:// |
|
Minimal
|
|
요청자는 |
디렉터리 자격 증명
GetDataAccess
는 적절한 권한 부여와 일치할 때 요청에 관련된 모든 자격 증명을 고려합니다. 회사 디렉터리 자격 증명의 경우 GetDataAccess
는 자격 증명 인식 세션에 사용되는 IAM 자격 증명의 권한 부여도 반환합니다. 자격 증명 인식 세션에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 자격 증명 인식 콘솔 세션을 사용할 수 있는 권한 부여를 참조하세요. GetDataAccess
는 다음 표와 같이 가장 제한적인 권한 부여로 범위를 제한하는 자격 증명을 생성합니다.
IAM 자격 증명에 대한 권한 부여 범위 | 디렉터리 자격 증명에 대한 권한 부여 범위 | 요청된 범위 | 반환된 범위 | 권한 | Effect |
---|---|---|---|---|---|
S3:// |
|
S3://
|
S3://
|
Default |
요청자는 IAM 역할에 대한 권한 부여의 일부로 접두사 bob/로 시작하지만 디렉터리 자격 증명에 대한 권한 부여의 일부로 접두사 bob/images/로 제한된 키 이름을 가진 모든 객체에 액세스할 수 있습니다. IAM 역할과 디렉터리 자격 증명 모두 요청된 범위인 |
S3:// |
|
S3://
|
S3://
|
Minimal |
권한은 |
S3:// |
|
S3://
|
S3://
|
Default |
요청자는 디렉터리 자격 증명에 대한 권한 부여의 일부로 접두사 bob/로 시작하지만 IAM 역할에 대한 권한 부여의 일부로 접두사 bob/images/로 제한된 키 이름을 가진 모든 객체에 액세스할 수 있습니다. IAM 역할과 디렉터리 자격 증명 모두 요청된 범위인 |
S3:// |
|
S3://
|
S3://
|
Minimal |
권한은 |
지속 시간
durationSeconds
파라미터는 임시 자격 증명의 기간을 초 단위로 설정합니다. 기본값은 3600
초(1시간)이지만 요청자(피부여자)는 900
초(15분)에서 최대 43200
초(12시간)까지 범위를 지정할 수 있습니다. 피부여자가 이 최댓값보다 큰 값을 요청하면 요청이 실패합니다.
참고
임시 토큰을 요청할 때 위치가 객체인 경우 요청의 targetType
파라미터 값을 Object
로 설정하세요. 이 파라미터는 위치가 객체이고 권한 수준이 Minimal
인 경우에만 필요합니다. 위치가 버킷 또는 접두사인 경우 이 파라미터를 지정할 필요가 없습니다.
예시
AWS Command Line Interface(AWS CLI), Amazon S3 REST API, AWS SDK를 사용하여 임시 자격 증명을 요청할 수 있습니다. 다음 예제를 참조하십시오.
자세한 내용은 Amazon Simple Storage Service API 참조의 GetDataAccess를 참조하세요.
AWS CLI를 설치하려면 AWS Command Line Interface 사용 설명서의 AWS CLI 설치를 참조하세요.
다음 예시 명령을 사용하려면
를 실제 정보로 대체하세요.user input
placeholders
예 임시 자격 증명 요청
요청:
aws s3control get-data-access \ --account-id
111122223333
\ --targets3://
\amzn-s3-demo-bucket
/prefixA*--permission
READ
\ --privilege Default \ --regionus-east-2
응답:
{ "Credentials": { "AccessKeyId": "
Example-key-id
", "SecretAccessKey": "Example-access-key
", "SessionToken": "Example-session-token
", "Expiration": "2023-06-14T18:56:45+00:00
"}, "MatchedGrantTarget": "s3://
*", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::amzn-s3-demo-bucket
/prefixA*111122223333
:role/role-name
" } }
S3 Access Grants에서 임시 자격 증명 요청을 위한 Amazon S3 REST API 지원에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 GetDataAccess를 참조하세요.
이 섹션에서는 피부여자가 AWS SDK를 사용하여 S3 Access Grants로부터 임시 자격 증명을 요청하는 방법의 예를 제공합니다.