ディレクトリバケットでの S3 Access Points でタグを使用する - Amazon Simple Storage Service

ディレクトリバケットでの S3 Access Points でタグを使用する

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

注記

ディレクトリバケットのアクセスポイントでタグを使用することによる追加料金は、標準の S3 API リクエスト料金を超えて発生しません。詳細については、「Amazon S3 の料金」を参照してください。

ディレクトリバケットのアクセスポイントでタグを使用する一般的な方法

属性ベースのアクセス制御 (ABAC) は、アクセス許可をスケールし、タグに基づいてディレクトリバケットのアクセスポイントへのアクセスを許可することを可能にします。Amazon S3 の ABAC の詳細については、「Using tags for ABAC」を参照してください。

S3 Access Points の ABAC

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

IAM ポリシーでは、次のグローバル条件キーを使用して、バケットのタグに基づいてディレクトリバケットのアクセスポイントへのアクセスを制御できます。

  • aws:ResourceTag/key-name

    • このキーを使用して、ポリシーで指定したタグキーバリューのペアと、リソースにアタッチされているキーバリューのペアを比較します。たとえば、リソースに値 Marketing の付いたタグキー Dept がアタッチされている場合にのみ、そのリソースへのアクセスを許可するように要求することができます。詳細については、「AWS のリソースに対するアクセスの制御」を参照してください。

  • aws:RequestTag/key-name

    • このキーを使用して、リクエストで渡されたタグキーバリューのペアと、ポリシーで指定したタグペアを比較します。たとえば、リクエストに「Dept」タグキーが含まれ、「Accounting」という値が含まれているかどうかを確認できます。詳細については、「AWS リクエスト時のアクセスの制御」を参照してください。この条件キーを使用して、TagResource および CreateAccessPoint API オペレーション中に渡すことができるタグキーと値のペアを制限できます。

  • aws:TagKeys

    • このキーを使用して、リクエスト内のタグキーとポリシーで指定したキーを比較します。ポリシーでタグを使用してアクセスを制御する場合は、aws:TagKeys 条件キーを使用して、許可されるタグキーを定義することをお勧めします。サンプルポリシーおよび詳細については、「タグキーに基づいたアクセスの制御」を参照してください。タグを使用してディレクトリバケットのアクセスポイントを作成できます。CreateAccessPoint API オペレーション中にタグ付けを許可するには、s3express:TagResources3express:CreateAccessPoint アクションの両方を含むポリシーを作成する必要があります。次に、aws:TagKeys 条件キーを使用して、CreateAccessPoint リクエストで特定のタグキーを使用して適用できます。

  • s3express:AccessPointTag/tag-key

    • この条件キーを使用して、タグを使用してアクセスポイントを介して特定のデータにアクセス許可を付与します。IAM ポリシーで aws:ResourceTag/tag-key を使用する場合、アクセスポイントと、アクセスポイントが承認時に考慮されるのと同じタグを持つ必要があるバケットの両方。アクセスポイントタグを介してのみデータへのアクセスを制御する場合は、s3express:AccessPointTag/tag-key 条件キーを使用できます。

ディレクトリバケットのアクセスポイントの ABAC ポリシーの例

ディレクトリバケットのアクセスポイントの ABAC ポリシーの次の例を参照してください。

1.1 - 特定のタグを持つアクセスポイントを作成または変更する IAM ポリシー

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

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

1.2 - タグを使用してバケットのオペレーションを制限するアクセスポイントポリシー

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

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

1.3 - タグ付け管理を維持する既存リソースのタグを変更する IAM ポリシー

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3express:TagResource" ], "Resource": "arn:aws::s3express: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 - s3express:AccessPointTag 条件キーを使用する

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

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

ディレクトリバケットのアクセスポイントのタグの使用

Amazon S3コンソール、AWS コマンドラインインターフェイス (CLI)、AWS SDK、または S3 API、TagResourceUntagResourceListTagsForResource を使用して、ディレクトリバケットのアクセスポイントのタグを追加または管理できます。詳細については、以下を参照してください。