호출자의 접근 권한 목록 보기
호출자의 접근 권한 목록 보기
S3 데이터 소유자는 S3 Access Grants를 사용해 AWS Identity and Access Management(IAM) 신원 또는 AWS IAM Identity Center 기업 디렉터리 신원에 대한 접근 권한을 만들 수 있어요. IAM 신원과 IAM Identity Center 디렉터리 신원은 그 반대로 ListCallerAccessGrants API를 사용해 자신이 접근할 수 있는 모든 Amazon S3 버킷, 접두사, 객체(자신의 S3 Access Grants에 따라 정의된 것)를 나열할 수 있어요. 이 API를 사용하면 IAM 신원이나 디렉터리 신원이 S3 Access Grants를 통해 접근할 수 있는 모든 S3 데이터를 파악할 수 있어요.
이 기능은 특정 최종 사용자가 접근할 수 있는 데이터를 보여 주는 애플리케이션을 구축할 때 사용할 수 있어요. 예를 들어 고객이 S3 버킷에 접근할 때 사용하는 오픈소스 UI 컴포넌트인 AWS Storage Browser for S3는 이 기능을 사용해 S3 Access Grants 기반으로 최종 사용자에게 Amazon S3에서 접근할 수 있는 데이터를 보여 줘요. 또 다른 예로, Amazon S3에서 데이터를 탐색하거나 업로드하거나 다운로드하는 애플리케이션을 만들 때 이 기능을 사용해 최종 사용자가 탐색할 수 있는 트리 구조를 애플리케이션 안에 만들 수 있어요.
참고
기업 디렉터리 신원의 경우, 호출자의 접근 권한을 나열할 때 S3 Access Grants는 신원 인식 세션(identity-aware session)에 사용된 IAM 신원의 접근 권한을 반환해요. 신원 인식 세션에 대한 자세한 내용은 AWS Identity and Access Management 사용자 가이드의 신원 인식 콘솔 세션 사용 권한 부여를 참고하세요.
수혜자(IAM 신원 또는 기업 디렉터리 신원)는 AWS Command Line Interface(AWS CLI), Amazon S3 REST API, AWS SDK를 사용해 자신의 접근 권한 목록을 가져올 수 있어요.
AWS CLI를 설치하려면 AWS Command Line Interface 사용자 가이드의 AWS CLI 설치를 참고하세요. 다음 예제 명령을 사용할 때는 사용자 입력 자리 표시자를 자신의 정보로 바꾸세요.
예제 – 호출자의 접근 권한 나열
요청:
aws s3control list-caller-access-grants \
--account-id 111122223333 \
--region us-east-2
--max-results 5
응답:
{
"NextToken": "6J9S...",
"CallerAccessGrantsList": [
{
"Permission": "READWRITE",
"GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix1/*",
"ApplicationArn": "NA"
},
{
"Permission": "READWRITE",
"GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix2/*",
"ApplicationArn": "ALL"
},
{
"Permission": "READWRITE",
"GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix3/*",
"ApplicationArn": "arn:aws:sso::111122223333:application/ssoins-ssoins-1234567890abcdef/apl-abcd1234a1b2c3d"
}
]
}
예제 – 버킷에 대한 호출자의 접근 권한 나열
grantscope 매개 변수를 사용해 결과 범위를 좁힐 수 있어요.
요청:
aws s3control list-caller-access-grants \
--account-id 111122223333 \
--region us-east-2
--grant-scope "s3://amzn-s3-demo-bucket""
--max-results 1000
응답:
{
"NextToken": "6J9S...",
"CallerAccessGrantsList": [
{
"Permission": "READ",
"GrantScope": "s3://amzn-s3-demo-bucket*",
"ApplicationArn": "ALL"
},
{
"Permission": "READ",
"GrantScope": "s3://amzn-s3-demo-bucket/prefix1/*",
"ApplicationArn": "arn:aws:sso::111122223333:application/ssoins-ssoins-1234567890abcdef/apl-abcd1234a1b2c3d"
}
]
}
API 호출자의 접근 권한 목록을 가져오는 Amazon S3 REST API 지원에 대한 자세한 내용은 Amazon Simple Storage Service API Reference의 ListCallerAccessGrants를 참고하세요.
이 섹션은 수혜자가 AWS SDK를 사용해 S3 Access Grants로부터 임시 자격 증명을 요청하는 예제를 제공해요.
Java
다음 코드 예제는 특정 AWS 계정의 S3 데이터에 대한 API 호출자의 접근 권한을 반환해요. 이 코드 예제를 사용할 때는 사용자 입력 자리 표시자를 자신의 정보로 바꾸세요.
예제 – 호출자의 접근 권한 나열
요청:
Public void ListCallerAccessGrants() {
ListCallerAccessGrantsRequest listRequest = ListCallerAccessGrantsRequest.builder()
.withMaxResults(1000)
.withGrantScope("s3://")
.accountId("111122223333");
ListCallerAccessGrantsResponse listResponse = s3Control.listCallerAccessGrants(listRequest);
LOGGER.info("ListCallerAccessGrantsResponse: " + listResponse);
}
응답:
ListCallerAccessGrantsResponse(
CallerAccessGrantsList=[
ListCallerAccessGrantsEntry(
S3Prefix=s3://amzn-s3-demo-bucket/prefix1/,
Permission=READ,
ApplicationArn=ALL
)
])
출처: 문서
본문
List the caller's access grants (호출자의 접근 권한 나열하기)
호출자의 접근 권한을 나열하는 방법은 위 안내를 따라 하면 돼요.