

# 汎用バケットでの S3 Access Points の使用
<a name="access-points-tagging"></a>

AWS タグは、リソースに関するメタデータを保持するキーと値のペアで、この場合は Amazon S3 Access Points です。アクセスポイントは、作成時にタグ付けしたり、既存のアクセスポイントでタグを管理したりできます。タグに関する一般情報については、「[コスト配分または属性ベースのアクセス制御 (ABAC) のタグ付け](tagging.md)」を参照してください。

**注記**  
アクセスポイントでタグを使用することによる追加料金は、標準の S3 API リクエスト料金を超えて発生しません。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

## アクセスポイントでタグを使用する一般的な方法
<a name="common-ways-to-use-tags-directory-bucket"></a>

属性ベースのアクセス制御 (ABAC) は、アクセス許可をスケールし、タグに基づいてアクセスポイントへのアクセスを許可することを可能にします。Amazon S3 の ABAC の詳細については、「[Using tags for ABAC](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#)」を参照してください。

### S3 Access Points の ABAC
<a name="abac-for-access-points"></a>

Amazon S3 Access Points は、タグを使用した属性ベースのアクセス制御 (ABAC) をサポートしています。AWS Organizations、IAM、Access Points ポリシーでタグベースの条件キーを使用します。エンタープライズの場合、Amazon S3 の ABAC は複数の AWS アカウントにわたる認可をサポートしています。

IAM ポリシーでは、次の[グローバル条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)を使用して、アクセスポイントのタグに基づいてアクセスポイントへのアクセスを制御できます。
+ `aws:ResourceTag/key-name`
**重要**  
`aws:ResourceTag` 条件キーは、汎用バケットのアクセスポイント ARN を介して実行される S3 アクションにのみ使用でき、基盤となるアクセスポイントタグのみを対象とします。
  + このキーを使用して、ポリシーで指定したタグキーバリューのペアと、リソースにアタッチされているキーバリューのペアを比較します。たとえば、リソースに値 `Dept` の付いたタグキー `Marketing` がアタッチされている場合にのみ、そのリソースへのアクセスを許可するように要求することができます。詳細については、「[AWS のリソースに対するアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)」を参照してください。
+ `aws:RequestTag/key-name`
  + このキーを使用して、リクエストで渡されたタグキーバリューのペアと、ポリシーで指定したタグペアを比較します。たとえば、リクエストに「`Dept`」タグキーが含まれ、「`Accounting`」という値が含まれているかどうかを確認できます。詳細については、「[AWS リクエスト時のアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-requests)」を参照してください。この条件キーを使用して、`TagResource` および `CreateAccessPoint` API オペレーション中に渡すことができるタグのキーと値のペアを制限できます。
+ `aws:TagKeys`
  + このキーを使用して、リクエスト内のタグキーとポリシーで指定したキーを比較します。ポリシーでタグを使用してアクセスを制御する場合は、`aws:TagKeys` 条件キーを使用して、許可されるタグキーを定義することをお勧めします。サンプルポリシーおよび詳細については、「[タグキーに基づいたアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-tag-keys)」を参照してください。タグを使用してアクセスポイントを作成できます。`CreateAccessPoint` API オペレーション中にタグ付けを許可するには、`s3:TagResource` と `s3:CreateAccessPoint` アクションの両方を含むポリシーを作成する必要があります。次に、`aws:TagKeys` 条件キーを使用して、`CreateAccessPoint` リクエストで特定のタグキーを使用して適用できます。
+ `s3:AccessPointTag/tag-key`
  + この条件キーを使用して、タグを使用してアクセスポイントを介して特定のデータにアクセス許可を付与します。IAM ポリシーで `aws:ResourceTag/tag-key` を使用する場合、アクセスポイントと、アクセスポイントが承認時に考慮されるのと同じタグを持つ必要があるバケットの両方。アクセスポイントタグを介してのみデータへのアクセスを制御する場合は、`s3:AccessPointTag/tag-key` 条件キーを使用できます。

### アクセスポイントの ABAC ポリシーの例
<a name="example-access-points-abac-policies"></a>

Amazon S3 Access Points の ABAC ポリシーの次の例を参照してください。

#### 1.1 - 特定のタグを持つバケットを作成または変更するための IAM ポリシー
<a name="example-access-points-user-policy-request-tag"></a>

この IAM ポリシーでは、このポリシーを持つユーザーまたはロールは、アクセスポイントの作成リクエストでタグキー `project` とタグ値 `Trinity` を使用してアクセスポイントにタグを付ける場合にのみ、アクセスポイントを作成できます。また、`TagResource` リクエストにタグのキーと値のペア `project:Trinity` が含まれている限り、既存のアクセスポイントのタグを追加または変更できます。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateAccessPointWithTags",
      "Effect": "Allow",
      "Action": [
        "s3:CreateAccessPoint",
        "s3:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/project": [
            "Trinity"
          ]
        }
      }
    }
  ]
}
```

#### 1.2 - タグを使用してアクセスポイントでのオペレーションを制限するアクセスポイントポリシー
<a name="example-access-points-user-policy-resource-tag"></a>

このアクセスポイントポリシーでは、IAM プリンシパル (ユーザーとロール) は、アクセスポイントの `project` タグの値がプリンシパルの `project` タグの値と一致する場合にのみ、アクセスポイントの `GetObject` アクションを使用してオペレーションを実行できます。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowObjectOperations",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        }
      }
    }
  ]
}
```

#### 1.3 - タグ付け管理を維持する既存リソースのタグを変更するための IAM ポリシー
<a name="example-access-points-user-policy-tag-keys"></a>

この IAM ポリシーでは、IAM プリンシパル (ユーザーまたはロール) は、アクセスポイントの `project` タグの値がプリンシパルの `project` タグの値と一致する場合にのみ、アクセスポイントのタグを変更できます。条件キー `aws:TagKeys` で指定された `project`、`environment`、`owner`、および `cost-center` の 4 つのタグのみが、これらのアクセスポイントに対して許可されます。これにより、タグガバナンスの適用、不正なタグ変更の防止、およびアクセスポイント間でのタグ付けスキーマの一貫性の維持が可能になります。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnforceTaggingRulesOnModification",
      "Effect": "Allow",
      "Action": [
        "s3:TagResource"
      ],
      "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/project": "${aws:PrincipalTag/project}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "project",
            "environment",
            "owner",
            "cost-center"
          ]
        }
      }
    }
  ]
}
```

#### 1.4 - s3:AccessPointTag 条件キーを使用する
<a name="example-access-points-policy-bucket-tag"></a>

この IAM ポリシーでは、条件ステートメントは、アクセスポイントにタグキー `Environment` とタグ値 `Production` がある場合、バケットのデータへのアクセスを許可します。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificAccessPoint",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point",
      "Condition": {
        "StringEquals": {
          "s3:AccessPointTag/Environment": "Production"
        }
      }
    }
  ]
}
```

#### 1.5 - バケット委任ポリシーの使用
<a name="example-access-points-policy-delegate"></a>

Amazon S3 では、S3 バケットポリシーへのアクセスまたはコントロールを別の AWS アカウント、または別のアカウントの特定の AWS Identity and Access Management (IAM) ユーザーもしくはロールに委任できます。委任バケットポリシーは、この他のアカウント、ユーザー、またはロールにバケットとそのオブジェクトへのアクセス許可を付与します。詳細については、「[アクセス許可の委任](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html#permission-delegation)」を参照してください。

次のような委任バケットポリシーを使用している場合: 

```
{
  "Version": "2012-10-17",		 	 	 
    "Statement": {
      "Principal": {"AWS": "*"},
        "Effect": "Allow",
        "Action": ["s3:*"],
        "Resource":["arn:aws::s3:::amzn-s3-demo-bucket/*", "arn:aws::s3:::amzn-s3-demo-bucket"],
           "Condition": {
             "StringEquals" : {
                "s3:DataAccessPointAccount" : "111122223333"
             }
           }
    }
}
```

次の IAM ポリシーでは、条件ステートメントは、アクセスポイントにタグキー `Environment` とタグ値 `Production` がある場合、バケットのデータへのアクセスを許可します。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToSpecificAccessPoint",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point",
      "Condition": {
        "StringEquals": {
          "s3:AccessPointTag/Environment": "Production"
        }
      }
    }
  ]
}
```

## 汎用バケットのアクセスポイントのタグを使用する
<a name="working-with-tags-access-points"></a>

Amazon S3コンソール、AWS コマンドラインインターフェイス (CLI)、AWS SDK、または S3 API、[TagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html)、[UntagResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html)、[ListTagsForResource](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html) を使用して、アクセスポイントのタグを追加または管理できます。詳細については、以下を参照してください。

**Topics**
+ [アクセスポイントでタグを使用する一般的な方法](#common-ways-to-use-tags-directory-bucket)
+ [汎用バケットのアクセスポイントのタグを使用する](#working-with-tags-access-points)
+ [タグ付きアクセスポイントを作成する](access-points-create-tag.md)
+ [アクセスポイントへのタグの追加](access-points-tag-add.md)
+ [アクセスポイントタグの表示](access-points-tag-view.md)
+ [アクセスポイントからのタグの削除](access-points-tag-delete.md)