

# S3 Access Grants 위치 사용
<a name="access-grants-location"></a>

계정의 AWS 리전에서 [Amazon S3 Access Grants 인스턴스를 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)한 후 해당 인스턴스에 S3 위치를 등록합니다. S3 Access Grans 위치는 기본 S3 위치(`s3://`), 버킷 또는 접두사를 AWS Identity and Access Management(IAM) 역할에 매핑합니다. S3 Access Grants는 이 IAM 역할을 맡아 해당 특정 위치에 액세스하는 피부여자에게 임시 자격 증명을 제공합니다. 액세스 권한 부여를 생성하려면 먼저 S3 Access Grants 인스턴스에 위치를 하나 이상 등록해야 합니다.

위치를 등록하고, 위치의 세부 정보를 보고, 위치를 편집하고, 위치를 삭제할 수 있습니다.

**참고**  
 S3 Access Grants 인스턴스에서 첫 번째 위치를 등록한 후에도 인스턴스에는 여전히 개별 액세스 권한이 부여되지 않습니다. 액세스 권한 부여를 생성하려면 [권한 부여 생성](access-grants-grant-create.md) 섹션을 참조하세요.

**Topics**
+ [

# 위치 등록
](access-grants-location-register.md)
+ [

# 등록된 위치에 대한 세부 정보 보기
](access-grants-location-view.md)
+ [

# 등록된 위치 업데이트
](access-grants-location-edit.md)
+ [

# 등록된 위치 삭제
](access-grants-location-delete.md)

# 위치 등록
<a name="access-grants-location-register"></a>

계정의 AWS 리전에서 [Amazon S3 Access Grants 인스턴스를 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)한 후 해당 인스턴스에 S3 위치를 등록합니다. S3 Access Grans 위치는 기본 S3 위치(`s3://`), 버킷 또는 접두사를 AWS Identity and Access Management(IAM) 역할에 매핑합니다. S3 Access Grants는 이 IAM 역할을 맡아 해당 특정 위치에 액세스하는 피부여자에게 임시 자격 증명을 제공합니다. 액세스 권한 부여를 생성하려면 먼저 S3 Access Grants 인스턴스에 위치를 하나 이상 등록해야 합니다.

**권장 사용 사례**  
기본 위치(`s3://`)를 등록하고 이를 IAM 역할에 매핑하는 것이 좋습니다. 기본 S3 경로(`s3://`)의 위치는 계정의 AWS 리전에 있는 모든 S3 버킷에 대한 액세스를 포함합니다. 액세스 권한 부여를 생성할 때 기본 위치 내의 버킷, 접두사 또는 객체로 권한 부여 범위를 좁힐 수 있습니다.

**복잡한 액세스 관리 사용 사례**  
더 복잡한 액세스 관리 사용 사례에서는 기본 위치보다 더 많이 등록해야 할 수도 있습니다. 이러한 사용 사례의 몇 가지 예는 다음과 같습니다.
+ *amzn-s3-demo-bucket*은 S3 Access Grants 인스턴스의 등록된 위치로서 IAM 역할이 매핑되어 있지만 이 IAM 역할은 버킷 내 특정 접두사에 대한 액세스가 거부되었다고 가정해 보겠습니다. 이 경우 IAM 역할이 액세스할 수 없는 접두사를 별도의 위치로 등록하고 필요한 액세스 권한이 있는 다른 IAM 역할에 해당 위치를 매핑할 수 있습니다.
+ 가상 프라이빗 클라우드(VPC) 엔드포인트 내 사용자로만 액세스 권한을 제한하는 권한 부여를 생성한다고 가정해 보겠습니다. 이 경우, IAM 역할이 VPC 엔드포인트에 대한 액세스를 제한하는 버킷 위치를 등록할 수 있습니다. 나중에 피부여자가 S3 Access Grants에 자격 증명을 요청하면 S3 Access Grants는 해당 위치의 IAM 역할을 맡아 임시 자격 증명을 제공합니다. 이 자격 증명은 호출자가 VPC 엔드포인트 내에 있지 않는 한 특정 버킷에 대한 액세스를 거부합니다. 이 거부 권한은 권한 부여에 지정된 일반 READ, WRITE 또는 READWRITE 권한에 추가로 적용됩니다.

위치를 등록할 때는 S3 Access Grants가 임시 자격 증명을 제공하고 특정 권한 부여에 대한 권한 범위를 지정하기 위해 S3 Access Grants가 맡는 IAM 역할도 지정해야 합니다.

사용 사례에서 S3 Access Grants 인스턴스에 여러 위치를 등록해야 하는 경우 다음 중 하나를 등록할 수 있습니다.


| S3 URI | IAM 역할 | 설명 | 
| --- | --- | --- | 
| s3:// | Default-IAM-role |  기본 위치인 `s3://`에는 AWS 리전의 모든 버킷이 포함됩니다.  | 
| s3://amzn-s3-demo-bucket1/ | IAM-role-For-bucket |  이 위치에는 지정된 버킷의 모든 객체가 포함됩니다.  | 
| s3://amzn-s3-demo-bucket1/prefix-name | IAM-role-For-prefix |  이 위치에는 이 접두사로 시작하는 객체 키 이름을 가진 버킷 내 모든 객체가 포함됩니다.  | 

특정 버킷 또는 접두사를 등록하기 전에 다음을 수행해야 합니다.
+ 액세스 권한을 부여할 데이터가 포함된 버킷을 하나 이상 생성합니다. 이러한 버킷은 S3 Access Grants 인스턴스와 동일한 AWS 리전에 있어야 합니다. 자세한 내용은 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) 섹션을 참조하세요.

  접두사를 추가하는 것은 선택적 단계입니다. 접두사는 객체 키 이름의 시작 부분에 있는 문자열입니다. 이를 사용하여 버킷의 객체를 구성하고 액세스 관리를 수행할 수 있습니다. 버킷에 접두사를 추가하려면 [객체 키 이름 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html)을 참조하세요.
+ AWS 리전 내 S3 데이터에 액세스할 수 있는 권한이 있는 IAM 역할을 생성합니다. 자세한 내용은 **AWS IAM Identity Center IAM 사용 설명서의 [IAM 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)을 참조하세요.
+  IAM 역할 신뢰 정책에서 S3 Access Grants 서비스(`access-grants.s3.amazonaws.com`) 보안 주체에 생성한 IAM 역할에 대한 액세스 권한을 부여합니다. 이를 위해 다음 문이 포함된 JSON 파일을 생성할 수 있습니다. 계정에 신뢰 정책을 추가하려면 [사용자 지정 신뢰 정책을 사용하여 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

  *TestRolePolicy.json*

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
      "Statement": [
      {
        "Sid": "TestRolePolicy",
        "Effect": "Allow",
        "Principal": {
          "Service": "access-grants.s3.amazonaws.com"
        },
        "Action": [
          "sts:AssumeRole", 
          "sts:SetSourceIdentity"
        ],
        "Condition": {
          "StringEquals": {
            "aws:SourceAccount": "111122223333",
            "aws:SourceArn": "arn:aws:s3::111122223333:access-grants/default"
          }
        }
      }
    ]
  }
  ```

------

  또는 IAM Identity Center 사용 사례의 경우 두 번째 문이 포함된 다음 정책을 사용합니다.
+ Amazon S3 권한을 생성한 IAM 역할에 연결하기 위해 IAM 정책을 생성합니다. 다음 예시 `iam-policy.json` 파일을 확인하고 `user input placeholders`를 실제 정보로 대체하세요.
**참고**  
AWS Key Management Service(AWS KMS) 키를 통한 서버 측 암호화를 사용하여 데이터를 암호화하는 경우 다음 예시는 IAM 역할에 필요한 AWS KMS 권한을 정책에 포함합니다. 이 기능을 사용하지 않는 경우 IAM 정책에서 이러한 권한을 제거할 수 있습니다.
S3 Access Grants에서 벤딩하는 자격 증명인 경우에만 IAM 역할이 S3 데이터에 액세스하도록 제한할 수 있습니다. 이 예시는 특정 S3 Access Grants 인스턴스에 대한 `Condition` 문을 추가하는 방법을 보여 줍니다. 이 `Condition`을 사용하려면 `Condition` 문의 S3 Access Grants 인스턴스 ARN을 `arn:aws:s3:region:accountId:access-grants/default` 형식의 S3 Access Grants 인스턴스 ARN으로 바꾸세요.

  *iam-policy.json*

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
           "Sid": "ObjectLevelReadPermissions",
           "Effect":"Allow",
           "Action":[
              "s3:GetObject",
              "s3:GetObjectVersion",
              "s3:GetObjectAcl",
              "s3:GetObjectVersionAcl",
              "s3:ListMultipartUploadParts"
           ],
           "Resource":[ 
              "arn:aws:s3:::*"  
           ],
           "Condition":{
              "StringEquals": { "aws:ResourceAccount": "accountId" },
              "ArnEquals": {
                  "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region:accountId:access-grants/default"]
              }
          } 
        },
        {
           "Sid": "ObjectLevelWritePermissions",
           "Effect":"Allow",
           "Action":[
              "s3:PutObject",
              "s3:PutObjectAcl",
              "s3:PutObjectVersionAcl",
              "s3:DeleteObject",
              "s3:DeleteObjectVersion",
              "s3:AbortMultipartUpload"
           ],
           "Resource":[
              "arn:aws:s3:::*"  
           ],
           "Condition":{
              "StringEquals": { "aws:ResourceAccount": "accountId" },
              "ArnEquals": {
                  "s3:AccessGrantsInstanceArn": ["arn:aws:s3:AWS 리전:accountId:access-grants/default"]
              }
           } 
        },
        {
           "Sid": "BucketLevelReadPermissions",
           "Effect":"Allow",
           "Action":[
              "s3:ListBucket"
           ],
           "Resource":[
              "arn:aws:s3:::*"
           ],
           "Condition":{
              "StringEquals": { "aws:ResourceAccount": "accountId" },
              "ArnEquals": {
                  "s3:AccessGrantsInstanceArn": ["arn:aws:s3:AWS 리전:accountId:access-grants/default"]
              }
           }     
        },
  	  //Optionally add the following section if you use SSE-KMS encryption
        {
           "Sid": "KMSPermissions",
           "Effect":"Allow",
           "Action":[
              "kms:Decrypt",
              "kms:GenerateDataKey"
           ],
           "Resource":[
              "*"
           ]
        }
     ]
  }
  ```

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), Amazon S3 REST API, AWS SDK를 사용하여 S3 Access Grants 인스턴스에 위치를 등록할 수 있습니다.

**참고**  
 S3 Access Grants 인스턴스에서 첫 번째 위치를 등록한 후에도 인스턴스에는 여전히 개별 액세스 권한이 부여되지 않습니다. 액세스 권한 부여를 생성하려면 [권한 부여 생성](access-grants-grant-create.md) 섹션을 참조하세요.

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

S3 Access Grants를 사용하여 S3 데이터에 액세스 권한을 부여하려면 먼저 등록된 위치가 하나 이상 있어야 합니다.

**S3 Access Grants 인스턴스에 위치를 등록하는 방법**

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

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

1. **S3 Access Grants** 페이지에서 사용하려는 S3 Access Grants 인스턴스가 포함된 리전을 선택합니다.

   S3 Access Grants 인스턴스를 처음 사용하는 경우 [1단계 - S3 Access Grants 인스턴스 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)을 완료하고 **Access Grants 인스턴스 설정** 마법사의 **2단계**로 이동했는지 확인하세요. 이미 S3 Access Grants 인스턴스가 있는 경우 **세부 정보 보기**를 선택한 다음 **위치** 탭에서 **위치 등록**을 선택합니다.

   1. **위치 범위**에서 **S3 찾아보기**를 선택하거나 등록하려는 위치의 S3 URI 경로를 입력합니다. S3 URI 형식에 대해서는 [위치 형식](#location-types) 테이블을 참조하세요. URI를 입력한 후 **보기**를 선택하여 위치를 찾아볼 수 있습니다.

   1. **IAM 역할**의 경우, 다음 중 하나를 선택합니다.
      + **기존 IAM 역할에서 선택**

        드롭다운 목록에서 IAM 역할을 선택합니다. 역할을 선택한 후 **보기**를 선택하여 등록하려는 위치를 관리하는 데 필요한 권한이 이 역할에 있는지 확인하세요. 특히, 이 역할이 S3 Access Grants에 `sts:AssumeRole` 및 `sts:SetSourceIdentity` 권한을 부여하는지 확인하세요.
      + **IAM 역할 ARN 입력**

        [IAM 콘솔](https://console.aws.amazon.com/iam/)로 이동합니다. IAM 역할의 Amazon 리소스 이름(ARN)을 복사하여 이 상자에 붙여넣습니다.

   1. 완료하려면 **다음** 또는 **위치 등록을 선택합니다.**

1. 문제 해결:

**위치를 등록할 수 없음**
   + 위치가 이미 등록되었을 수 있습니다.

     위치를 등록할 `s3:CreateAccessGrantsLocation` 권한이 없을 수도 있습니다. 계정 관리자에게 문의하세요.

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

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

S3 Access Grants 인스턴스에 기본 위치인 `s3://` 또는 사용자 지정 위치를 등록할 수 있습니다. 먼저 해당 위치에 대한 보안 주체 액세스 권한이 있는 IAM 역할을 생성한 다음 S3 Access Grants에 이 역할을 수임할 권한을 부여해야 합니다.

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

**Example 리소스 정책 생성**  
S3 Access Grants가 IAM 역할을 수임하도록 허용하는 정책을 생성합니다. 이를 위해 다음 문이 포함된 JSON 파일을 생성할 수 있습니다. 계정에 리소스 정책을 추가하려면 [첫 번째 고객 관리형 정책 만들기 및 연결](https://docs.aws.amazon.com//IAM/latest/UserGuide/tutorial_managed-policies.html)을 참조하세요.  
*TestRolePolicy.json*    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Stmt1234567891011",
      "Action": ["sts:AssumeRole", "sts:SetSourceIdentity"],
      "Effect": "Allow",
      "Principal": {"Service": "access-grants.s3.amazonaws.com"}
    }
  ]
}
```

**Example 역할 생성**  
다음 IAM 명령을 실행하여 역할을 생성합니다.  

```
aws iam create-role --role-name accessGrantsTestRole \
 --region us-east-2 \
 --assume-role-policy-document file://TestRolePolicy.json
```
`create-role` 명령을 실행하면 정책이 반환됩니다.  

```
{
    "Role": {
        "Path": "/",
        "RoleName": "accessGrantsTestRole",
        "RoleId": "AROASRDGX4WM4GH55GIDA",
        "Arn": "arn:aws:iam::111122223333:role/accessGrantsTestRole",
        "CreateDate": "2023-05-31T18:11:06+00:00",
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
                {
                    "Sid": "Stmt1685556427189",
                    "Action": [
                        "sts:AssumeRole",
                        "sts:SetSourceIdentity"
                    ],
                    "Effect": "Allow",
                    "Principal": {
                        "Service":"access-grants.s3.amazonaws.com"
                    }
                }
            ]
        }
    }
}
```

**Example**  
Amazon S3 권한을 IAM 역할에 연결하기 위해 IAM 정책을 생성합니다. 다음 예시 `iam-policy.json` 파일을 확인하고 `user input placeholders`를 실제 정보로 대체하세요.  
AWS Key Management Service(AWS KMS) 키를 통한 서버 측 암호화를 사용하여 데이터를 암호화하는 경우 다음 예시는 IAM 역할에 필요한 AWS KMS 권한을 정책에 추가합니다. 이 기능을 사용하지 않는 경우 IAM 정책에서 이러한 권한을 제거할 수 있습니다.  
S3 Access Grants에서 자격 증명을 제공하는 경우에만 IAM 역할을 사용하여 S3의 데이터에 액세스할 수 있도록 하기 위해 이 예시에서는 IAM 정책에 S3 Access Grants 인스턴스(`s3:AccessGrantsInstance: InstanceArn`)를 지정하는 `Condition` 문을 추가하는 방법을 보여줍니다. 다음 예시 정책을 사용할 때 `user input placeholders`를 실제 정보로 대체하세요.
*iam-policy.json*    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
         "Sid": "ObjectLevelReadPermissions",
         "Effect": "Allow",
         "Action": [
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:GetObjectAcl",
            "s3:GetObjectVersionAcl",
            "s3:ListMultipartUploadParts"
         ],
         "Resource": [ 
            "arn:aws:s3:::*"  
         ],
         "Condition": {
            "StringEquals": { "aws:ResourceAccount": "111122223333" },
            "ArnEquals": {
                "s3:AccessGrantsInstanceArn": ["arn:aws:s3:us-east-1::access-grants/default"]
            }
        } 
      },
      {
         "Sid": "ObjectLevelWritePermissions",
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:PutObjectVersionAcl",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion",
            "s3:AbortMultipartUpload"
         ],
         "Resource": [
            "arn:aws:s3:::*"  
         ],
         "Condition": {
            "StringEquals": { "aws:ResourceAccount": "111122223333" },
            "ArnEquals": {
                "s3:AccessGrantsInstanceArn": ["arn:aws:s3:us-east-1::access-grants/default"]
            }
         } 
      },
      {
         "Sid": "BucketLevelReadPermissions",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::*"
         ],
         "Condition": {
            "StringEquals": { "aws:ResourceAccount": "111122223333" },
            "ArnEquals": {
                "s3:AccessGrantsInstanceArn": ["arn:aws:s3:us-east-1::access-grants/default"]
            }
         }     
      },
      {
         "Sid": "KMSPermissions",
         "Effect": "Allow",
         "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
         ],
         "Resource": [
            "*"
         ],
         "Condition": {
            "StringEquals": {
               "kms:ViaService": "s3.us-east-1.amazonaws.com"
            }
         }
      }
   ]
}
```

**Example**  
다음 명령을 실행합니다.  

```
aws iam put-role-policy \
--role-name accessGrantsTestRole \
--policy-name accessGrantsTestRole \
--policy-document file://iam-policy.json
```

**Example 기본 위치 등록**  

```
aws s3control create-access-grants-location \
 --account-id 111122223333 \
 --location-scope s3:// \
 --iam-role-arn arn:aws:iam::111122223333:role/accessGrantsTestRole
```
응답:  

```
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "default",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default",
    "LocationScope": "s3://" 
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
}
```

**Example 리전당 사용자 정의 위치**  

```
aws s3control create-access-grants-location \
 --account-id 111122223333 \
 --location-scope s3://DOC-BUCKET-EXAMPLE/ \
 --iam-role-arn arn:aws:iam::123456789012:role/accessGrantsTestRole
```
응답:  

```
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2: 111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888",
    "LocationScope": "s3://DOC-BUCKET-EXAMPLE/",
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
}
```

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

S3 Access Grants 인스턴스 관리를 위한 Amazon S3 REST API 지원에 대한 자세한 내용은 **Amazon Simple Storage Service API 참조의 다음 섹션을 참조하세요.
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html) 

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

이 섹션에서는 AWS SDK를 사용하여 위치를 등록하는 방법의 예시를 보여줍니다.

다음 예제를 사용하려면 `user input placeholders`를 사용자의 정보로 대체합니다.

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

S3 Access Grants 인스턴스에 기본 위치인 `s3://` 또는 사용자 지정 위치를 등록할 수 있습니다. 먼저 해당 위치에 대한 보안 주체 액세스 권한이 있는 IAM 역할을 생성한 다음 S3 Access Grants에 이 역할을 수임할 권한을 부여해야 합니다.

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

**Example 기본 위치 등록**  
요청:  

```
public void createAccessGrantsLocation() {
CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.locationScope("s3://")
.iamRoleArn("arn:aws:iam::123456789012:role/accessGrantsTestRole")
.build();
CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest);
LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse);
}
```
응답:  

```
CreateAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:11.027Z,
AccessGrantsLocationId=default,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default,
LocationScope=s3://,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
```

**Example 리전당 사용자 정의 위치**  
요청:  

```
public void createAccessGrantsLocation() {
CreateAccessGrantsLocationRequest createRequest = CreateAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.locationScope("s3://DOC-BUCKET-EXAMPLE/")
.iamRoleArn("arn:aws:iam::111122223333:role/accessGrantsTestRole")
.build();
CreateAccessGrantsLocationResponse createResponse = s3Control.createAccessGrantsLocation(createRequest);
LOGGER.info("CreateAccessGrantsLocationResponse: " + createResponse);
}
```
응답:  

```
CreateAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=18cfe6fb-eb5a-4ac5-aba9-8d79f04c2012,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/18cfe6fb-eb5a-4ac5-aba9-8d79f04c2666,
LocationScope= s3://test-bucket-access-grants-user123/,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
```

------

# 등록된 위치에 대한 세부 정보 보기
<a name="access-grants-location-view"></a>

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), Amazon S3 REST API, AWS SDK를 사용하여 S3 Access Grants 인스턴스에 등록된 위치의 세부 정보를 가져올 수 있습니다.

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

**S3 Access Grants 인스턴스에 등록된 위치를 보는 방법**

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

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

1. **S3 Access Grants** 페이지에서 사용하려는 S3 Access Grants 인스턴스가 포함된 리전을 선택합니다.

1. 인스턴스의 **세부 정보 보기**를 선택합니다.

1. 인스턴스의 세부 정보 페이지에서 **위치** 탭을 선택합니다.

1. 확인하고자 하는 등록 위치를 찾습니다. 등록된 위치 목록을 필터링하려면 검색 상자를 사용합니다.

## AWS CLI 사용
<a name="access-grants-location-edit-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 get-access-grants-location \
--account-id 111122223333 \
--access-grants-location-id default
```
응답:  

```
{
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "default",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default",
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
}
```

**Example - S3 Access Grants 인스턴스에 등록된 모든 위치 나열**  
결과를 S3 접두사 또는 버킷으로 제한하려면 선택적으로 `--location-scope s3://bucket-and-or-prefix` 파라미터를 사용할 수 있습니다.  

```
aws s3control list-access-grants-locations \
--account-id 111122223333 \
--region us-east-2
```
응답:  

```
{"AccessGrantsLocationsList": [
  {
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "default",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default",
    "LocationScope": "s3://" 
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
     },
  {
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888",
    "LocationScope": "s3://amzn-s3-demo-bucket/prefixA*",
    "IAMRoleArn": "arn:aws:iam::111122223333:role/accessGrantsTestRole"
     }
   ]
  }
```

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

등록된 위치의 세부 정보를 가져오거나 S3 Access Grants 인스턴스에 등록된 모든 위치를 나열하기 위한 Amazon S3 REST API 지원에 대한 자세한 내용은 **Amazon Simple Storage Service API 참조의 다음 섹션을 참조하세요.
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html) 

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

이 섹션에서는 AWS SDK를 사용하여 S3 Access Grants 인스턴스에 등록된 위치에 대한 세부 정보를 가져오거나 S3 Access Grants 인스턴스에 등록된 위치를 모두 나열하는 방법의 예시를 보여줍니다.

다음 예제를 사용하려면 `user input placeholders`를 사용자의 정보로 대체합니다.

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

**Example - 등록된 위치에 대한 세부 정보 가져오기**  

```
public void getAccessGrantsLocation() {
GetAccessGrantsLocationRequest getAccessGrantsLocationRequest = GetAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.accessGrantsLocationId("default")
.build();
GetAccessGrantsLocationResponse getAccessGrantsLocationResponse = s3Control.getAccessGrantsLocation(getAccessGrantsLocationRequest);
LOGGER.info("GetAccessGrantsLocationResponse: " + getAccessGrantsLocationResponse);
}
```
응답:  

```
GetAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=default,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default,
LocationScope= s3://,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
```

**Example - S3 Access Grants 인스턴스에 등록된 모든 위치 나열**  
결과를 S3 접두사 또는 버킷으로 제한하려면 선택적으로 `LocationScope` 파라미터에 `s3://bucket-and-or-prefix`와 같은 S3 URI를 전달할 수 있습니다.  

```
public void listAccessGrantsLocations() {

ListAccessGrantsLocationsRequest listRequest =   ListAccessGrantsLocationsRequest.builder()
.accountId("111122223333")
.build();

ListAccessGrantsLocationsResponse listResponse = s3Control.listAccessGrantsLocations(listRequest);
LOGGER.info("ListAccessGrantsLocationsResponse: " + listResponse);
}
```
응답:  

```
ListAccessGrantsLocationsResponse(
AccessGrantsLocationsList=[
ListAccessGrantsLocationsEntry(
CreatedAt=2023-06-07T04:35:11.027Z,
AccessGrantsLocationId=default,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/default,
LocationScope=s3://,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
),
ListAccessGrantsLocationsEntry(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=635f1139-1af2-4e43-8131-a4de006eb456,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:111122223333:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888,
LocationScope=s3://amzn-s3-demo-bucket/prefixA*,
IAMRoleArn=arn:aws:iam::111122223333:role/accessGrantsTestRole
)
]
)
```

------

# 등록된 위치 업데이트
<a name="access-grants-location-edit"></a>

Amazon S3 Access Grants 인스턴스에 등록된 위치의 AWS Identity and Access Management(IAM) 역할을 업데이트할 수 있습니다. S3 Access Grants에 위치를 등록하는 데 사용하는 새 IAM 역할마다 S3 Access Grants 서비스 보안 주체(`access-grants.s3.amazonaws.com`)에게 이 역할에 대한 액세스 권한을 부여해야 합니다. 이렇게 하려면 처음 [위치를 등록](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-location.html)할 때 사용한 것과 동일한 신뢰 정책 JSON 파일에 새 IAM 역할 항목을 추가하세요.

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), Amazon S3 REST API, AWS SDK를 사용하여 S3 Access Grants 인스턴스의 위치를 업데이트할 수 있습니다.

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

**S3 Access Grants 인스턴스에 등록된 위치의 IAM 역할을 업데이트하는 방법**

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

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

1. **S3 Access Grants** 페이지에서 사용하려는 S3 Access Grants 인스턴스가 포함된 리전을 선택합니다.

1. 인스턴스의 **세부 정보 보기**를 선택합니다.

1. 인스턴스의 세부 정보 페이지에서 **위치** 탭을 선택합니다.

1. 업데이트하려는 위치를 찾습니다. 위치 목록을 필터링하려면 검색 상자를 사용합니다.

1. 업데이트할 등록된 위치 옆에 있는 옵션 버튼을 선택합니다.

1. IAM 역할을 업데이트한 다음 **변경 사항 저장**을 선택합니다.

## AWS CLI 사용
<a name="access-grants-location-edit-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 - 등록된 위치의 IAM 역할 업데이트**  

```
aws s3control update-access-grants-location \
--account-id 111122223333 \
--access-grants-location-id 635f1139-1af2-4e43-8131-a4de006eb999 \
--iam-role-arn arn:aws:iam::777788889999:role/accessGrantsTestRole
```
응답:  

```
{
    "CreatedAt": "2023-05-31T18:23:48.107000+00:00",
    "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb999",
    "AccessGrantsLocationArn": "arn:aws:s3:us-east-2:777788889999:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888",
    "LocationScope": "s3://amzn-s3-demo-bucket/prefixB*",
    "IAMRoleArn": "arn:aws:iam::777788889999:role/accessGrantsTestRole"
}
```

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

S3 Access Grants 인스턴스의 위치 업데이트를 위한 Amazon S3 REST API 지원에 대한 자세한 내용은 **Amazon Simple Storage Service API 참조의 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html) 섹션을 참조하세요.

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

이 섹션에서는 AWS SDK를 사용하여 등록된 위치의 IAM 역할을 업데이트하는 방법의 예시를 보여줍니다.

다음 예시를 사용하려면 `user input placeholders`를 실제 정보로 대체하십시오.

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

**Example - 등록된 위치의 IAM 역할 업데이트**  

```
public void updateAccessGrantsLocation() {
UpdateAccessGrantsLocationRequest updateRequest = UpdateAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.accessGrantsLocationId("635f1139-1af2-4e43-8131-a4de006eb999")
.iamRoleArn("arn:aws:iam::777788889999:role/accessGrantsTestRole")
.build();
UpdateAccessGrantsLocationResponse updateResponse = s3Control.updateAccessGrantsLocation(updateRequest);
LOGGER.info("UpdateAccessGrantsLocationResponse: " + updateResponse);
}
```
응답:  

```
UpdateAccessGrantsLocationResponse(
CreatedAt=2023-06-07T04:35:10.027Z,
AccessGrantsLocationId=635f1139-1af2-4e43-8131-a4de006eb999,
AccessGrantsLocationArn=arn:aws:s3:us-east-2:777788889999:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888,
LocationScope=s3://amzn-s3-demo-bucket/prefixB*,
IAMRoleArn=arn:aws:iam::777788889999:role/accessGrantsTestRole
)
```

------

# 등록된 위치 삭제
<a name="access-grants-location-delete"></a>

Amazon S3 Access Grants 인스턴스에서 위치 등록을 삭제할 수 있습니다. 위치를 삭제하면 S3 Access Grants 인스턴스에서 등록이 취소됩니다.

S3 Access Grants 인스턴스에서 위치 등록을 제거하려면 먼저 이 위치와 관련된 모든 권한 부여를 삭제해야 합니다. 권한 부여를 삭제하는 방법에 대한 자세한 정보는 [권한 부여 삭제](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-grant-delete.html)를 참조하세요.

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), Amazon S3 REST API, AWS SDK를 사용하여 S3 Access Grants 인스턴스의 위치를 삭제할 수 있습니다.

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

**S3 Access Grants 인스턴스에서 위치 등록을 삭제하는 방법**

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

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

1. **S3 Access Grants** 페이지에서 사용하려는 S3 Access Grants 인스턴스가 포함된 리전을 선택합니다.

1. 인스턴스의 **세부 정보 보기**를 선택합니다.

1. 인스턴스의 세부 정보 페이지에서 **위치** 탭을 선택합니다.

1. 업데이트하려는 위치를 찾습니다. 위치 목록을 필터링하려면 검색 상자를 사용합니다.

1. 삭제할 등록된 위치 옆에 있는 옵션 버튼을 선택합니다.

1. **등록 취소**를 선택합니다.

1. 이 작업을 취소할 수 없다는 경고 대화 상자가 나타납니다. 위치를 삭제하려면 **등록 취소**를 선택합니다.

## AWS CLI 사용
<a name="access-grants-location-delete-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 delete-access-grants-location \
--account-id 111122223333 \
--access-grants-location-id  a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 
 // No response body
```

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

S3 Access Grants 인스턴스에서 위치 삭제를 위한 Amazon S3 REST API 지원에 대한 자세한 내용은 **Amazon Simple Storage Service API 참조의 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html) 섹션을 참조하세요.

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

이 섹션에서는 AWS SDK를 사용하여 위치를 삭제하는 방법의 예시를 보여줍니다.

다음 예시를 사용하려면 `user input placeholders`를 실제 정보로 대체하십시오.

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

**Example - 위치 등록 삭제**  

```
public void deleteAccessGrantsLocation() {
DeleteAccessGrantsLocationRequest deleteRequest = DeleteAccessGrantsLocationRequest.builder()
.accountId("111122223333")
.accessGrantsLocationId("a1b2c3d4-5678-90ab-cdef-EXAMPLE11111")
.build();
DeleteAccessGrantsLocationResponse deleteResponse = s3Control.deleteAccessGrantsLocation(deleteRequest);
LOGGER.info("DeleteAccessGrantsLocationResponse: " + deleteResponse);
}
```
응답:  

```
DeleteAccessGrantsLocationResponse()
```

------