3.13. STS での属性ベースのアクセス制御 (ABAC) のセッションタグ

セッションタグは、ユーザーのフェデレーション中に渡すことができるキーと値のペアです。これらは、セッションで aws:PrincipalTag として渡されるか、セキュアトークンサービス (STS) によって返される一時的な認証情報として渡されます。これらのプリンシパルタグは、Web トークンの一部として提供されるセッションタグと、引き受けるロールに関連付けられたタグで設定されます。

注記

現在、セッションタグは、AssumeRoleWithWebIdentity に渡される Web トークンの一部としてのみサポートされています。

タグは常に次の名前空間で指定する必要があります: https://aws.amazon.com/tags

重要

フェデレーションユーザーによって渡された Web トークンにセッションタグが含まれている場合、信頼ポリシーには sts:TagSession 権限が必要です。それ以外の場合、AssumeRoleWithWebIdentity アクションは失敗します。

sts:TagSession を使用した信頼ポリシーの例:

{
        "Version":"2012-10-17",
        "Statement":[
        {
            "Effect":"Allow",
            "Action":["sts:AssumeRoleWithWebIdentity","sts:TagSession"],
            "Principal":{"Federated":["arn:aws:iam:::oidc-provider/localhost:8080/auth/realms/quickstart"]},
            "Condition":{"StringEquals":{"localhost:8080/auth/realms/quickstart:sub":"test"}}
        }]
    }

プロパティー

セッションタグのプロパティーは次のとおりです。

  • セッションタグは複数値にすることができます。

    注記

    複数値のセッションタグは、Amazon Webservice (AWS) ではサポートされていません。

  • Keycloak は、最大 50 個のセッションタグを持つ OpenID Connect ID プロバイダー (IDP) として設定できます。
  • 許可されるキーの最大サイズは 128 文字です。
  • 許可される値の最大サイズは 256 文字です。
  • タグまたは値は aws: で開始できません。

関連情報

3.13.1. タグキー

以下は、ロール信頼ポリシーまたはロール許可ポリシーで使用できるタグキーです。

aws:RequestTag
説明

リクエストで渡されたキーと値のペアを、ロールの信頼ポリシーのキーと値のペアと比較します。

AssumeRoleWithWebIdentity の場合、セッションタグはロール信頼ポリシーで aws:RequestTag として使用できます。これらのセッションタグは、Web トークンで Keycloak によって渡されます。その結果、フェデレーションユーザーはロールを引き受けることができます。

aws:PrincipalTag
説明

プリンシパルに関連付けられたキーと値のペアをポリシーのキーと値のペアと比較します。

AssumeRoleWithWebIdentity の場合、セッションタグは、ユーザーが認証されると、一時的な認証情報にプリンシパルタグとして表示されます。これらのセッションタグは、Web トークンで Keycloak によって渡されます。これらは、ロールのアクセス許可ポリシーで aws:PrincipalTag として使用できます。

iam:ResourceTag
説明

リソースにアタッチされたキーと値のペアをポリシーのキーと値のペアと比較します。

AssumeRoleWithWebIdentity の場合、ロールにアタッチされたタグが信頼ポリシーのタグと比較され、ユーザーがロールを引き受けることができます。

注記

Ceph Object Gateway は、ロールのタグ付け、タグの一覧表示、およびタグ付け解除アクションのための RESTful API をサポートするようになりました。

aws:TagKeys
説明

リクエスト内のタグとポリシー内のタグを比較します。

AssumeRoleWithWebIdentity の場合、タグは、ユーザーがロールを引き受けることを許可される前に、ロール信頼ポリシーまたはアクセス許可ポリシーでタグキーをチェックするために使用されます。

s3:ResourceTag
説明

S3 リソース (バケットまたはオブジェクト) に存在するタグを、ロールのアクセス許可ポリシーのタグと比較します。

これは、Ceph Object Gateway で S3 操作を承認するために使用できます。ただし、これは AWS では許可されていません。

オブジェクトやバケットに付けられたタグを参照するためのキーです。オブジェクトまたはバケットに使用できる RESTful API を使用して、タグをオブジェクトまたはバケットにアタッチできます。

3.13.2. S3 リソースタグ

次のリストは、特定の操作を承認するためにサポートされている S3 リソースタグタイプを示しています。

タグタイプ: オブジェクトタグ
操作
GetObjectGetObjectTagsDeleteObjectTagsDeleteObjectPutACLsInitMultipartAbortMultipart、`ListMultipartGetAttrsPutObjectRetentionGetObjectRetentionPutObjectLegalHoldGetObjectLegalHold
タグタイプ: バケットタグ
操作
PutObjectTagsGetBucketTagsPutBucketTagsDeleteBucketTagsGetBucketReplicationDeleteBucketReplicationGetBucketVersioningSetBucketVersioningGetBucketWebsiteSetBucketWebsiteDeleteBucketWebsiteStatBucketListBucketGetBucketLoggingGetBucketLocationDeleteBucketGetLCPutLCDeleteLCGetCORSPutCORSGetRequestPaymentSetRequestPaymentPutBucketPolicyGetBucketPolicyDeleteBucketPolicyPutBucketObjectLockGetBucketObjectLockGetBucketPolicyStatusPutBucketPublicAccessBlockGetBucketPublicAccessBlockDeleteBucketPublicAccessBlock
タグタイプ: バケット ACL のバケットタグ、オブジェクト ACL のオブジェクトタグ
操作
GetACLsPutACLs
タグタイプ: ソースオブジェクトのオブジェクトタグ、宛先バケットのバケットタグ
操作
PutObjectCopyObject