

# S3 Access Grants 크로스 계정 액세스
<a name="access-grants-cross-accounts"></a>

S3 Access Grants를 사용하면 다음에 Amazon S3 데이터 액세스 권한을 부여할 수 있습니다.
+ 계정 내 AWS Identity and Access Management(IAM) 자격 증명
+ 다른 AWS 계정의 IAM 자격 증명
+ AWS IAM Identity Center 인스턴스의 디렉터리 사용자 또는 그룹

먼저 다른 계정에 크로스 계정 액세스를 구성합니다. 여기에는 리소스 정책을 사용하여 S3 Access Grants 인스턴스에 대한 액세스 권한을 부여하는 것이 포함됩니다. 그런 다음 권한 부여를 사용하여 S3 데이터(버킷, 접두사 또는 객체)에 대한 액세스 권한을 부여하세요.

크로스 계정 액세스를 구성한 후 다른 계정은 S3 Access Grants에서 Amazon S3 데이터에 대한 임시 액세스 자격 증명을 요청할 수 있습니다. 다음 이미지는 S3 Access Grants를 통한 크로스 계정 S3 액세스의 사용자 흐름을 보여 줍니다.

![S3 Access Grants 크로스 계정 사용자 흐름](http://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/images/access-grants-cross-account.png)


1. 두 번째 계정(B)의 사용자 또는 애플리케이션이 Amazon S3 데이터가 저장되는 사용자 계정(A)의 S3 Access Grants 인스턴스에서 자격 증명을 요청합니다. 자세한 내용은 [S3 Access Grants를 통해 Amazon S3 데이터에 대한 액세스 요청](access-grants-credentials.md) 섹션을 참조하세요.

1. 두 번째 계정에 Amazon S3 데이터에 대한 액세스 권한을 부여하는 권한 부여가 있는 경우 사용자 계정(A)의 S3 Access Grants 인스턴스가 임시 자격 증명을 반환합니다. 액세스 권한 부여에 대한 자세한 내용은 [S3 Access Grants에서 권한 부여 사용](access-grants-grant.md) 섹션을 참조하세요.

1. 두 번째 계정(B)의 사용자 또는 애플리케이션이 S3 Access Grants에서 벤딩한 자격 증명을 사용하여 사용자 계정(A)의 S3 데이터에 액세스합니다.

**S3 Access Grants 크로스 계정 액세스 구성**  
S3 Access Grants를 통해 크로스 계정 S3 액세스 권한을 부여하려면 다음 단계를 따르세요.
+ **1단계:** 계정(예: S3 데이터가 저장되는 계정 ID `111122223333`)에서 S3 Access Grants 인스턴스를 구성합니다.
+ **2단계:** 계정 `111122223333`에서 S3 Access Grants 인스턴스에 대한 리소스 정책을 구성하여 두 번째 계정(예: 계정 ID `444455556666`)에 액세스 권한을 부여합니다.
+ **3단계:** 계정 `111122223333`의 S3 Access Grants 인스턴스로부터 자격 증명을 요청하도록 두 번째 계정 `444455556666`의 IAM 보안 주체에 대한 IAM 권한을 구성합니다.
+ **4단계:** 계정 `111122223333`에 권한 부여를 생성하여 두 번째 계정 `444455556666`의 IAM 보안 주체에 계정 `111122223333`의 일부 S3 데이터에 대한 액세스 권한을 부여합니다.

## 1단계: 계정에서 S3 Access Grants 인스턴스 구성
<a name="access-grants-cross-accounts-configure-1"></a>

먼저 Amazon S3 데이터에 대한 액세스를 관리하려면 계정 `111122223333`에 S3 Access Grants 인스턴스가 있어야 합니다. 공유하려는 S3 데이터가 저장된 각 AWS 리전에서 S3 Access Grants 인스턴스를 생성해야 합니다. 둘 이상의 AWS 리전에서 데이터를 공유하는 경우 각 AWS 리전에 대해 이러한 구성 단계를 반복하세요. S3 데이터가 저장된 AWS 리전에 이미 S3 Access Grants 인스턴스가 있는 경우 다음 단계로 진행합니다. S3 Access Grants 인스턴스를 구성하지 않은 경우 [S3 Access Grants 인스턴스 사용](access-grants-instance.md) 단원을 참조하여 이 단계를 완료하세요.

## 2단계: S3 Access Grants 인스턴스에 크로스 계정 액세스 권한을 부여하기 위한 리소스 정책 구성
<a name="access-grants-cross-accounts-configure-2"></a>

`111122223333` 계정에서 크로스 계정 액세스를 위한 S3 Access Grants 인스턴스를 생성한 후에는 계정 `111122223333`의 S3 Access Grants 인스턴스에 리소스 기반 정책을 구성하여 크로스 계정 액세스 권한을 부여합니다. S3 AccessGrants 인스턴스는 리소스 기반 정책을 지원합니다. 적절한 리소스 기반 정책을 적용하면 다른 AWS 계정의 AWS Identity and Access Management(IAM) 사용자 또는 역할에 S3 Access Grants 인스턴스에 대한 액세스 권한을 부여할 수 있습니다. 크로스 계정 액세스는 다음과 같은 권한(작업)만 부여합니다.
+ `s3:GetAccessGrantsInstanceForPrefix` - 사용자, 역할 또는 앱이 특정 접두사가 포함된 S3 Access Grants 인스턴스를 검색할 수 있습니다.
+ `s3:ListAccessGrants`
+ `s3:ListAccessLocations`
+ `s3:ListCallerAccessGrants`
+ `s3:GetDataAccess` - 사용자, 역할 또는 앱이 S3 Access Grants를 통해 부여받은 액세스 권한을 기반으로 임시 자격 증명을 요청할 수 있습니다. 해당 자격 증명을 사용하여 액세스 권한이 부여된 S3 데이터에 액세스합니다.

이러한 권한 중 리소스 정책에 포함할 권한을 선택할 수 있습니다. S3 Access Grants 인스턴스의 이 리소스 정책은 일반적인 리소스 기반 정책이며 [IAM 정책 언어](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)가 지원하는 모든 것을 지원합니다. 동일한 정책에서 예컨대 `aws:PrincipalArn` 조건을 사용하여 계정 `111122223333`의 특정 IAM 자격 증명에 액세스 권한을 부여할 수 있지만, S3 Access Grants를 사용하면 그렇게 할 필요가 없습니다. 대신 S3 Access Grants 인스턴스 내에서 계정에 있는 개별 IAM ID뿐만 아니라 다른 계정을 위한 권한 부여를 생성할 수 있습니다. S3 Access Grants를 통해 각 액세스 권한 부여를 관리함으로써 권한의 규모를 조정할 수 있습니다.

이미 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)(AWS RAM)를 사용하는 경우, 이를 사용하여 [https://docs.aws.amazon.com/ram/latest/userguide/shareable.html#shareable-s3](https://docs.aws.amazon.com/ram/latest/userguide/shareable.html#shareable-s3) 리소스를 다른 계정이나 조직 내에서 공유할 수 있습니다. 자세한 내용은 [공유 AWS 리소스 작업](https://docs.aws.amazon.com/ram/latest/userguide/working-with.html)을 참조하세요. AWS RAM를 사용하지 않는 경우 S3 Access Grants API 작업 또는 AWS Command Line Interface(AWS CLI)를 사용하여 리소스 정책을 추가할 수도 있습니다.

### S3 콘솔 사용
<a name="access-grants-cross-accounts-console"></a>

AWS Resource Access Manager(AWS RAM) 콘솔을 사용하여 `s3:AccessGrants` 리소스를 다른 계정이나 조직 내에서 공유하는 것이 좋습니다. 계정 간에 S3 Access Grants를 공유하려면 다음을 수행합니다.

**S3 Access Grants 인스턴스 리소스 정책을 구성하려면:**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. AWS 리전 선택기에서 AWS 리전을 선택합니다.

1. 왼쪽 탐색 창에서 **Access Grants**를 선택합니다.

1. Access Grants 인스턴스 페이지의 **이 계정의 인스턴스** 섹션에서 **인스턴스 공유**를 선택합니다. 그러면 AWS RAM 콘솔로 리디렉션됩니다.

1. **리소스 공유 생성**을 선택합니다.

1. 리소스 공유를 생성하기 위한 AWS RAM 단계를 따릅니다. 자세한 내용은 [AWS RAM에서 리소스 공유 생성](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)을 참조하세요.

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

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

`put-access-grants-instance-resource-policy` CLI 명령을 사용하여 리소스 정책을 추가할 수 있습니다.

사용자 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 크로스 계정 액세스 권한을 두 번째 계정 `444455556666`에 부여하려면 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 리소스 정책이 두 번째 계정 `444455556666`에 다음 작업을 수행하기 위한 권한을 부여해야 합니다.
+ `s3:ListAccessGrants`
+ `s3:ListAccessGrantsLocations`
+ `s3:GetDataAccess`
+ `s3:GetAccessGrantsInstanceForPrefix`

S3 Access Grants 인스턴스 리소스 정책에서 S3 Access Grants 인스턴스의 ARN을 `Resource`로 지정하고 두 번째 계정 `444455556666`은 `Principal`로 지정합니다. 다음 예시를 사용하려면 {{사용자 입력 자리 표시자}}를 실제 정보로 바꾸세요.

```
{
"Version": "2012-10-17",		 	 	 
"Statement": [
{
	"Effect": "Allow", 
	"Principal": {
	"AWS": "{{444455556666}}"
}, 
	"Action": [
		"s3:ListAccessGrants",
		"s3:ListAccessGrantsLocations",
		"s3:GetDataAccess",
		"s3:GetAccessGrantsInstanceForPrefix"
	],
	"Resource": "arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default"
} ]
}
```

S3 Access Grants 인스턴스 리소스 정책을 추가하거나 업데이트하려면 다음 명령을 사용할 수 있습니다. 다음 예시 명령을 사용할 때는 `{{user input placeholders}}`를 실제 정보로 바꾸세요.

**Example S3 Access Grants 인스턴스 리소스 정책 추가 또는 업데이트**  

```
	aws s3control put-access-grants-instance-resource-policy \
	--account-id {{111122223333}} \
	--policy file://resourcePolicy.json \
	--region {{us-east-2}}
	{
		"Policy": "{\n 
		  \"Version\": \"2012-10-17\",\n 
		  \"Statement\": [{\n  
			\"Effect\": \"Allow\",\n
			\"Principal\": {\n
			  \"AWS\": \"{{444455556666}}\"\n
			},\n  
			\"Action\": [\n
			  \"s3:ListAccessGrants\",\n
			  \"s3:ListAccessGrantsLocations\",\n
			  \"s3:GetDataAccess\",\n
			  \"s3:GetAccessGrantsInstanceForPrefix\",\n
			  \"s3:ListCallerAccessGrants"\n
			],\n
			\"Resource\": \"arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default\"\n
		   }\n  
		  ]\n
		  }\n",
		"CreatedAt": "2023-06-16T00:07:47.473000+00:00"
	}
```

**Example S3 Access Grants 리소스 정책 가져오기**  
또한 CLI를 사용하여 S3 Access Grants 인스턴스의 리소스 정책을 가져오거나 삭제할 수 있습니다.  
S3 Access Grants 리소스 정책을 가져오려면 다음 예시 명령을 사용하세요. 이 예 명령을 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하세요.  

```
aws s3control get-access-grants-instance-resource-policy \
--account-id {{111122223333}} \
--region {{us-east-2}}

{
"Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::{{111122223333}}:root\"},\"Action\":[\"s3:ListAccessGrants\",\"s3:ListAccessGrantsLocations\",\"s3:GetDataAccess\",\"s3:GetAccessGrantsInstanceForPrefix\",\"s3:ListCallerAccessGrants\"],\"Resource\":\"arn:aws:
s3:{{us-east-2}}:{{111122223333}}:access-grants/default\"}]}",
"CreatedAt": "2023-06-16T00:07:47.473000+00:00"
}
```

**Example S3 Access Grants 리소스 정책 삭제**  
S3 Access Grants 리소스 정책을 삭제하려면 다음 예시 명령을 사용하세요. 이 예 명령을 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하세요.  

```
aws s3control delete-access-grants-instance-resource-policy \
--account-id {{111122223333}} \
--region {{us-east-2}}

// No response body
```

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

[PutAccessGrantsInstanceResourcePolicy API](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html)를 사용하여 리소스 정책을 추가할 수 있습니다.

사용자 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 크로스 계정 액세스 권한을 두 번째 계정 `444455556666`에 부여하려면 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 리소스 정책이 두 번째 계정 `444455556666`에 다음 작업을 수행하기 위한 권한을 부여해야 합니다.
+ `s3:ListAccessGrants`
+ `s3:ListAccessGrantsLocations`
+ `s3:GetDataAccess`
+ `s3:GetAccessGrantsInstanceForPrefix`

S3 Access Grants 인스턴스 리소스 정책에서 S3 Access Grants 인스턴스의 ARN을 `Resource`로 지정하고 두 번째 계정 `444455556666`은 `Principal`로 지정합니다. 다음 예시를 사용하려면 {{사용자 입력 자리 표시자}}를 실제 정보로 바꾸세요.

```
{
"Version": "2012-10-17",		 	 	 
"Statement": [
{
	"Effect": "Allow", 
	"Principal": {
	"AWS": "{{444455556666}}"
}, 
	"Action": [
		"s3:ListAccessGrants",
		"s3:ListAccessGrantsLocations",
		"s3:GetDataAccess",
		"s3:GetAccessGrantsInstanceForPrefix"
	],
	"Resource": "arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default"
} ]
}
```

그러고 나서 [PutAccessGrantsInstanceResourcePolicy API](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html)를 사용하여 정책을 구성할 수 있습니다.

S3 Access Grants 인스턴스의 리소스 정책을 가져오거나 업데이트, 삭제하기 위한 REST API 지원에 대한 내용은 **Amazon Simple Storage Service API 참조의 다음 단원을 참조하세요.
+  [PutAccessGrantsInstanceResourcePolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html) 
+  [GetAccessGrantsInstanceResourcePolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceResourcePolicy.html) 
+  [DeleteAccessGrantsInstanceResourcePolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstanceResourcePolicy.html) 

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

이 단원에서는 일부 S3 데이터에 대한 액세스 권한을 두 번째 AWS 계정에 부여하도록 S3 Access Grants 리소스 정책을 구성하는 방법에 대한 AWS SDK 예시를 제공합니다.

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

S3 Access Grants 인스턴스에 대한 크로스 계정 액세스를 관리하기 위해 리소스 정책을 추가 또는 업데이트하거나 가져오거나 삭제합니다.

**Example S3 Access Grants 인스턴스 리소스 정책 추가 또는 업데이트**  
사용자 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 크로스 계정 액세스 권한을 두 번째 계정 `444455556666`에 부여하려면 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 리소스 정책이 두 번째 계정 `444455556666`에 다음 작업을 수행하기 위한 권한을 부여해야 합니다.  
+ `s3:ListAccessGrants`
+ `s3:ListAccessGrantsLocations`
+ `s3:GetDataAccess`
+ `s3:GetAccessGrantsInstanceForPrefix`
S3 Access Grants 인스턴스 리소스 정책에서 S3 Access Grants 인스턴스의 ARN을 `Resource`로 지정하고 두 번째 계정 `444455556666`은 `Principal`로 지정합니다. 다음 예시를 사용하려면 {{사용자 입력 자리 표시자}}를 실제 정보로 바꾸세요.  

```
{
"Version": "2012-10-17",		 	 	 
"Statement": [
{
	"Effect": "Allow", 
	"Principal": {
	"AWS": "{{444455556666}}"
}, 
	"Action": [
		"s3:ListAccessGrants",
		"s3:ListAccessGrantsLocations",
		"s3:GetDataAccess",
		"s3:GetAccessGrantsInstanceForPrefix"
	],
	"Resource": "arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default"
} ]
}
```
S3 Access Grants 인스턴스 리소스 정책을 추가하거나 업데이트하려면 다음 예시 코드를 사용하세요.  

```
public void putAccessGrantsInstanceResourcePolicy() {
	PutAccessGrantsInstanceResourcePolicyRequest putRequest = PutAccessGrantsInstanceResourcePolicyRequest.builder()
	.accountId({{111122223333}})
	.policy(RESOURCE_POLICY)
	.build();
	PutAccessGrantsInstanceResourcePolicyResponse putResponse = s3Control.putAccessGrantsInstanceResourcePolicy(putRequest);
	LOGGER.info("PutAccessGrantsInstanceResourcePolicyResponse: " + putResponse);
	}
```
응답:  

```
PutAccessGrantsInstanceResourcePolicyResponse(
	Policy={
	"Version": "2012-10-17",		 	 	 
	"Statement": [{
	"Effect": "Allow",
	"Principal": {
	"AWS": "{{444455556666}}"
	},
	"Action": [
	"s3:ListAccessGrants",
	"s3:ListAccessGrantsLocations",
	"s3:GetDataAccess",
	"s3:GetAccessGrantsInstanceForPrefix",
	"s3:ListCallerAccessGrants"
	],
	"Resource": "arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default"
	}]
	}
	)
```

**Example S3 Access Grants 리소스 정책 가져오기**  
S3 Access Grants 리소스 정책을 가져오려면 다음 예시 코드를 사용하세요. 다음 예시 명령을 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하세요.  

```
public void getAccessGrantsInstanceResourcePolicy() {
	GetAccessGrantsInstanceResourcePolicyRequest getRequest = GetAccessGrantsInstanceResourcePolicyRequest.builder()
	.accountId({{111122223333}})
	.build();
	GetAccessGrantsInstanceResourcePolicyResponse getResponse = s3Control.getAccessGrantsInstanceResourcePolicy(getRequest);
	LOGGER.info("GetAccessGrantsInstanceResourcePolicyResponse: " + getResponse);
	}
```
응답:  

```
GetAccessGrantsInstanceResourcePolicyResponse(
	Policy={"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::{{444455556666}}:root"},"Action":["s3:ListAccessGrants","s3:ListAccessGrantsLocations","s3:GetDataAccess","s3:GetAccessGrantsInstanceForPrefix","s3:ListCallerAccessGrants"],"Resource":"arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default"}]},
	CreatedAt=2023-06-15T22:54:44.319Z
	)
```

**Example S3 Access Grants 리소스 정책 삭제**  
S3 Access Grants 리소스 정책을 삭제하려면 다음 예시 코드를 사용하세요. 다음 예시 명령을 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하세요.  

```
public void deleteAccessGrantsInstanceResourcePolicy() {
	DeleteAccessGrantsInstanceResourcePolicyRequest deleteRequest = DeleteAccessGrantsInstanceResourcePolicyRequest.builder()
	.accountId({{111122223333}})
	.build();
	DeleteAccessGrantsInstanceResourcePolicyResponse deleteResponse = s3Control.putAccessGrantsInstanceResourcePolicy(deleteRequest);
	LOGGER.info("DeleteAccessGrantsInstanceResourcePolicyResponse: " + deleteResponse);
	}
```
응답:  

```
DeleteAccessGrantsInstanceResourcePolicyResponse()
```

------

## 3단계: 두 번째 계정의 IAM 자격 증명에 사용자 계정의 S3 Access Grants 인스턴스를 직접 호출할 수 있는 권한을 부여합니다.
<a name="access-grants-cross-accounts-configure-3"></a>

Amazon S3 데이터 소유자가 계정 `111122223333`의 S3 Access Grants 인스턴스에 대한 크로스 계정 정책을 구성한 후, 두 번째 계정 `444455556666`의 소유자는 해당 IAM 사용자 또는 역할에 대한 자격 증명 기반 정책을 생성하고 소유자는 해당 사용자 또는 역할에 S3 Access Grants 인스턴스에 대한 액세스 권한을 부여해야 합니다. S3 Access Grants 인스턴스 리소스 정책에서 부여된 내용과 부여하려는 권한에 따라 자격 증명 기반 정책에 다음 작업 중 하나 이상을 포함하세요.
+ `s3:ListAccessGrants`
+ `s3:ListAccessGrantsLocations`
+ `s3:GetDataAccess`
+ `s3:GetAccessGrantsInstanceForPrefix`
+ `s3:ListCallerAccessGrants`

[AWS 크로스 계정 액세스 패턴](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)에 따라 두 번째 계정`444455556666`의 IAM 사용자 또는 역할은 이러한 권한 중 하나 이상을 명시적으로 보유해야 합니다. 예를 들어, IAM 사용자 또는 역할이 계정 `111122223333`의 S3 Access Grants 인스턴스를 직접 호출하여 자격 증명을 요청할 수 있도록 `s3:GetDataAccess` 권한을 부여합니다.

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

```
{
	"Version": "2012-10-17",		 	 	 
	"Statement": [
	{
		"Effect": "Allow", 
		"Action": [
			"s3:GetDataAccess",
		],
			"Resource": "arn:aws:s3:{{us-east-2}}:{{111122223333}}:access-grants/default"
		} 
	]
}
```

IAM 자격 증명 기반 정책 편집에 대한 자세한 내용은 **AWS Identity and Access Management 설명서의 [IAM 정책 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)을 참조하세요.

## 4단계: 사용자 계정의 S3 Access Grants 인스턴스에서 권한 부여를 생성하여 두 번째 계정의 IAM 자격 증명에 일부 S3 데이터에 대한 액세스 권한을 부여합니다.
<a name="access-grants-cross-accounts-configure-4"></a>

최종 구성 단계에서는 계정 111122223333의 S3 Access Grants 인스턴스에서 권한 부여를 생성하여 두 번째 계정 444455556666의 IAM 자격 증명에 사용자 계정의 일부 S3 데이터에 대한 액세스 권한을 부여할 수 있습니다. Amazon S3 콘솔, CLI, API 및 SDK를 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 [권한 부여 생성](access-grants-grant-create.md) 섹션을 참조하세요.

권한 부여에서 두 번째 계정의 IAM 자격 증명의 AWS ARN을 지정하고 액세스 권한을 부여하려는 S3 데이터의 위치(버킷, 접두사 또는 객체)를 지정합니다. 이 위치는 S3 Access Grants 인스턴스에 등록되어 있어야 합니다. 자세한 내용은 [위치 등록](access-grants-location-register.md) 섹션을 참조하세요. 원한다면 하위 접두사를 지정할 수 있습니다. 예를 들어, 액세스 권한을 부여하려는 위치가 버킷이고 해당 버킷의 특정 객체로 액세스를 추가적으로 제한하려면 `S3SubPrefix` 필드에 객체 키 이름을 전달합니다. 또는 키 이름이 특정 접두사(예: `2024-03-research-results/`)로 시작하는 버킷 내 객체로 액세스를 제한하려면 `S3SubPrefix=2024-03-research-results/`를 전달합니다.

다음은 두 번째 계정의 자격 증명을 위한 액세스 권한 부여를 생성하는 예시 CLI 명령입니다. 자세한 정보는 [권한 부여 생성](access-grants-grant-create.md)을 참조하세요. 이 예시 명령을 사용하려면 `{{user input placeholders}}`를 실제 정보로 대체하십시오.

```
aws s3control create-access-grant \
--account-id {{111122223333}} \
--access-grants-location-id default \
--access-grants-location-configuration S3SubPrefix={{prefixA*}} \
--permission READ \
--grantee GranteeType=IAM,GranteeIdentifier=arn:aws:iam::{{444455556666}}:{{role/data-consumer-1}}
```

크로스 계정 액세스를 구성한 후 두 번째 계정의 사용자 또는 역할은 다음을 수행할 수 있습니다.
+ `ListAccessGrantsInstances`를 직접 호출하여 AWS RAM를 통해 공유된 S3 Access Grants 인스턴스를 나열합니다. 자세한 내용은 [S3 Access Grants 인스턴스의 세부 정보 가져오기](access-grants-instance-view.md) 섹션을 참조하세요.
+ S3 Access Grants로부터 임시 자격 증명을 요청합니다. 요청을 만드는 방법에 대한 자세한 내용은 [S3 Access Grants를 통해 Amazon S3 데이터에 대한 액세스 요청](access-grants-credentials.md) 단원을 참조하세요.