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:
で開始できません。
関連情報
- セキュアトークンサービスの詳細は、セキュアトークンサービス を参照してください。
- セッションタグの使用例は、STS で属性ベースのアクセス制御にセッションタグを使用する例 を参照してください。
- セッションタグの使用法を示すサンプルコードについては、セッションタグの使用法を示すサンプルコード を参照してください。
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 リソースタグタイプを示しています。
- タグタイプ: オブジェクトタグ
- 操作
-
GetObject
、GetObjectTags
、DeleteObjectTags
、DeleteObject
、PutACLs
、InitMultipart
、AbortMultipart、`ListMultipart
、GetAttrs
、PutObjectRetention
、GetObjectRetention
、PutObjectLegalHold
、GetObjectLegalHold
- タグタイプ: バケットタグ
- 操作
-
PutObjectTags
、GetBucketTags
、PutBucketTags
、DeleteBucketTags
、GetBucketReplication
、DeleteBucketReplication
、GetBucketVersioning
、SetBucketVersioning
、GetBucketWebsite
、SetBucketWebsite
、DeleteBucketWebsite
、StatBucket
、ListBucket
、GetBucketLogging
、GetBucketLocation
、DeleteBucket
、GetLC
、PutLC
、DeleteLC
、GetCORS
、PutCORS
、GetRequestPayment
、SetRequestPayment
PutBucketPolicy
、GetBucketPolicy
、DeleteBucketPolicy
、PutBucketObjectLock
、GetBucketObjectLock
、GetBucketPolicyStatus
、PutBucketPublicAccessBlock
、GetBucketPublicAccessBlock
、DeleteBucketPublicAccessBlock
- タグタイプ: バケット ACL のバケットタグ、オブジェクト ACL のオブジェクトタグ
- 操作
-
GetACLs
、PutACLs
- タグタイプ: ソースオブジェクトのオブジェクトタグ、宛先バケットのバケットタグ
- 操作
-
PutObject
、CopyObject