

# 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 Grants のロケーションは、デフォルトの S3 ロケーション (`s3://`）、バケット、またはプレフィックスを AWS Identity and Access Management (IAM) ロールにマッピングします。S3 Access Grants は、この IAM ロールを引き受けて、その特定の場所にアクセスする被付与者に一時的な認証情報を提供します。アクセス権限を作成する前に、まず S3 Access Grants インスタンスに少なくとも 1 つのロケーションを登録する必要があります。

ロケーションの登録、ロケーションの詳細の表示、ロケーションの編集、ロケーションの削除を行うことができます。

**注記**  
 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 Grants のロケーションは、デフォルトの S3 ロケーション (`s3://`）、バケット、またはプレフィックスを AWS Identity and Access Management (IAM) ロールにマッピングします。S3 Access Grants は、この IAM ロールを引き受けて、その特定の場所にアクセスする被付与者に一時的な認証情報を提供します。アクセス権限を作成する前に、まず S3 Access Grants インスタンスに少なくとも 1 つのロケーションを登録する必要があります。

**推奨されるユースケース**  
デフォルトのロケーション (`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 が一時的な認証情報を提供したり、特定の権限のアクセス許可の範囲を設定したりするために引き受ける 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 |  このロケーションには、指定されたプレフィックスで始まるオブジェクトキー名を持つ、バケット内のすべてのオブジェクトが含まれます。  | 

特定のバケットまたはプレフィックスを登録する前に、次の手順を実行する必要があります。
+ アクセスを許可するデータを含むバケットを 1 つまたは複数作成します。これらのバケットは、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 アイデンティティセンターユーザーガイド」の「[IAM ロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)」を参照してください。**
+  IAM ロールの信頼ポリシーで、作成した IAM ロールに対して、S3 Access Grants サービス (`access-grants.s3.amazonaws.com`) のプリンシパルアクセス権を付与します。これを実行するために、次のステートメントを含む 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 のユースケースでは、2 番目のステートメントを含む次のポリシーを使用します。
+ 作成した IAM ロールに Amazon S3 アクセス許可をアタッチする IAM ポリシーを作成します。次の `iam-policy.json` ファイルを例にｓｈじて、`user input placeholders` を実際の情報と置き換えます。
**注記**  
次の例では、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化を使用してデータを暗号化する場合に、ポリシーに IAM ロールに必要な AWS KMS アクセス許可を含めています。この機能を使用しない場合は、IAM ポリシーからこのようなアクセス許可を削除できます。
IAM ロールが S3 データにアクセスするように制限できるのは、S3 Access Grants が認証情報を提供する場合に限られます。この例では、特定の 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)、AWS SDK、または Amazon S3 REST API を使用して S3 Access Grants インスタンスにロケーションを登録できます。

**注記**  
 S3 Access Grants インスタンスに最初のロケーションを登録しても、インスタンスに個別のアクセス権限はありません。アクセス権限を作成するには、「[権限を作成する](access-grants-grant-create.md)」を参照してください。

## S3 コンソールの使用
<a name="access-grants-location-register-console"></a>

S3 Access Grants を使用して S3 データへのアクセスを許可するには、少なくとも 1 つのロケーションを登録しておく必要があります。

**S3 Access Grants インスタンスでロケーションを登録するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[Access Grants]** を選択します。

1. **[S3 Access Grants]** ページで、取り組む S3 Access Grants インスタンスが含まれるリージョンを選択します。

   S3 Access Grants インスタンスを初めて使用する場合は、「[Step 1 - S3 Access Grants インスタンスを作成する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-instance-create.html)」を実行し、**[Access Grants インスタンスをセットアップ]** ウィザードの **[ステップ 2]** に進んでいる必要があります。S3 Access Grants インスタンスが既にある場合は、**[詳細の表示]** を選択して、**[ロケーション]** タブで、**[ロケーションを登録]** をクリックします。

   1. **[ロケーション範囲]** では、**[Browse 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-policy.json` ファイルを例にｓｈじて、`user input placeholders` を実際の情報と置き換えます。  
AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化を使用してデータを暗号化する場合、次の例ではポリシーに IAM ロールに必要な AWS KMS アクセス許可を追加します。この機能を使用しない場合は、IAM ポリシーからこのようなアクセス許可を削除できます。  
認証情報が S3 Access Grants によって提供される場合、IAM ロールが S3 内のデータへのアクセスにのみ使用できるようにするために、この例では、S3 Access Grants インスタンス (`s3:AccessGrantsInstance: InstanceArn`) を指定する `Condition` ステートメントを IAM ポリシーに追加する方法を示します。次のコマンド例を使用する際は、`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>

Amazon S3 REST API での S3 Access Grants インスタンスの管理のサポートの詳細については、「**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 マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/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>

Amazon S3 REST API で登録済みのロケーションの詳細を入手したり、S3 Access Grants インスタンスに登録されたロケーションのすべてを一覧表示する方法の詳細については、「**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 インスタンスに登録済みのロケーションの詳細を取得したり、すべての登録済みのロケーションを一覧表示する方法の例を説明します。

次の例を実行するには、`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)、AWS SDK、または Amazon S3 REST API を使用して S3 Access Grants インスタンスのロケーションを更新できます。

## S3 コンソールの使用
<a name="access-grants-location-edit-console"></a>

**Amazon S3 Access Grants インスタンスに登録済みのロケーションの IAM ロールを更新するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/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>

Amazon S3 REST API での S3 Access Grants のロケーション更新のサポートの詳細については、「**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 を使用して登録済みのロケーションを更新する方法の例を説明します。

次の例を使用するには、`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>

S3 Access Grants インスタンスからロケーション登録を削除することもできます。ロケーションを削除すると、S3 アクセス許可インスタンスから登録が解除されます。

S3 Access Grants インスタンスからロケーション登録を削除する前に、そのロケーションに関連付けられているすべての権限を削除する必要があります。権限を削除する方法については、「[権限を削除する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-grant-delete.html)」を参照してください。

Amazon S3 コンソール、AWS Command Line Interface、(AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して S3 Access Grants インスタンスのロケーションを削除できます。

## S3 コンソールの使用
<a name="access-grants-location-delete-console"></a>

**S3 Access Grants インスタンスからロケーション登録を削除するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/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>

Amazon S3 REST API での S3 Access Grants からのロケーション削除のサポートの詳細については、「**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()
```

------