

# 호출자의 액세스 권한 부여 목록
<a name="access-grants-list-grants"></a>

S3 데이터 소유자는 S3 Access Grants를 사용하여 AWS Identity and Access Management(IAM) ID 또는 AWS IAM Identity Center 기업 디렉터리 ID에 대한 액세스 권한 부여를 만들 수 있습니다. IAM ID 및 IAM Identity Center 디렉터리 ID는 차례로 `ListCallerAccessGrants` API를 사용하여 S3 Access Grants에서 정의한 대로 액세스할 수 있는 모든 Amazon S3 버킷, 접두사 및 객체를 나열할 수 있습니다. 이 API를 사용하면 IAM 또는 디렉터리 ID가 S3 Access Grants를 통해 액세스할 수 있는 모든 S3 데이터를 검색할 수 있습니다.

이 기능을 통해 특정 최종 사용자가 액세스할 수 있는 데이터를 표시하는 애플리케이션을 빌드할 수 있습니다. 예를 들어, 고객이 S3 버킷에 액세스하는 데 사용하는 오픈 소스 UI 구성 요소인 S3용 AWS Storage Browser는 해당 기능을 사용하여 최종 사용자에게 S3 Access Grants를 기반으로 Amazon S3에서 액세스할 수 있는 데이터를 제공합니다. 또 다른 예로, Amazon S3에서 데이터를 탐색, 업로드 또는 다운로드하기 위한 애플리케이션을 빌드할 때 이 기능을 사용하여 최종 사용자가 탐색할 수 있는 애플리케이션의 트리 구조를 빌드할 수 있습니다.

**참고**  
회사 디렉터리 자격 증명의 경우 호출자의 액세스 권한 부여를 나열할 때 S3 Access Grants는 자격 증명 인식 세션에 사용되는 IAM 자격 증명의 권한을 반환합니다. 자격 증명 인식 세션에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [자격 증명 인식 콘솔 세션을 사용할 수 있는 권한 부여](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_sts-setcontext.html)를 참조하세요.

IAM ID이든, 기업 디렉터리 ID든 상관없이 피부여자는 AWS Command Line Interface(AWS CLI), Amazon S3 REST API 및 AWS SDK를 사용하여 액세스 권한 부여 목록을 가져올 수 있습니다.

## AWS CLI 사용
<a name="access-grants-list-grants-cli"></a>

AWS CLI를 설치하려면 *AWS Command Line Interface 사용 설명서*의 [AWS CLI 설치](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)를 참조하세요.

다음 예시 명령을 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하세요.

**Example 호출자의 액세스 권한 부여 목록**  
요청:  

```
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}}"
		}
	]
}
```

**Example 버킷에 대한 호출자의 액세스 권한 부여 목록**  
`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}}"
		}
	]
}
```

## REST API 사용
<a name="access-grants-list-grants-rest-api"></a>

API 호출자의 액세스 권한 부여 목록을 가져오기 위한 Amazon S3 REST API 지원에 대한 내용은 **Amazon Simple Storage Service API 참조의 [ListCallerAccessGrants](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListCallerAccessGrants.html)를 참조하세요.

## AWS SDK 사용
<a name="access-grants-list-grants-using-sdk"></a>

이 섹션에서는 피부여자가 AWS SDK를 사용하여 S3 Access Grants로부터 임시 자격 증명을 요청하는 방법의 예를 제공합니다.

------
#### [ Java ]

다음 코드 예제는 특정 AWS 계정의 S3 데이터에 대한 API 호출자의 액세스 권한 부여를 반환합니다. 이 예시 코드를 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하세요.

**Example 호출자의 액세스 권한 부여 목록**  
요청:  

```
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
	)
])
```

------