このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
タグに基づいて AWS リソースへの pods アクセス権を付与する
EKS Pod Identity は、クラスター名、名前空間、サービスアカウント名などの属性を含むタグを各ポッドの一時認証情報に添付します。これらのロールセッションタグを使用すると、管理者は一致するタグに基づいて AWS リソースへのアクセスを許可することで、複数のサービスアカウントで機能する単一のロールを作成できます。ロールセッションタグのサポートを追加することで、お客様は同じ IAM ロールと IAM ポリシーを再利用しながら、クラスター間およびクラスター内のワークロード間のセキュリティ境界を厳しくすることができます。
例えば、次のポリシーはオブジェクトが EKS クラスターの名前でタグ付けされた場合に s3:GetObject
アクションを許可します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }
EKS Pod Identity によって追加されたセッションタグのリスト
次のリストには、Amazon EKS による AssumeRole
リクエストに追加されたタグのすべてのキーが含まれています。これらのタグをポリシーで使用するには、${aws:PrincipalTag/
の後に、例えば ${aws:PrincipalTag/kubernetes-namespace}
などのキーを続けます。
eks-cluster-arn
eks-cluster-name
kubernetes-namespace
kubernetes-service-account
kubernetes-pod-name
kubernetes-pod-uid
アカウント間のコピー
EKS Pod Identity によって追加されるセッションタグはすべて推移的です。タグのキーと値は、ワークロードがロールを別のアカウントに切り替えるために使用するすべての AssumeRole
アクションに渡されます。これらのタグを他のアカウントのポリシーで使用して、クロスアカウントシナリオでのアクセスを制限できます。詳細については、IAM ユーザーガイドの「セッションタグを使用したロールの連鎖」を参照してください。
カスタムタグ
EKS Pod Identity は、実行する AssumeRole
アクションにカスタムタグを追加できません。ただし、IAM ロールに適用するタグは、常に同じ形式 (${aws:PrincipalTag/MyCustomTag}
など、キーが続く ${aws:PrincipalTag/
) で使用できます。
注記
sts:AssumeRole
リクエストによってセッションに追加されたタグは、競合が発生した場合に優先されます。例えば、EKS が顧客ロールを引き継ぐときに Amazon EKS がセッションにキー eks-cluster-name
と値 my-cluster
を追加すると仮定します。また、値 my-own-cluster
を含む IAM ロールに eks-cluster-name
タグも追加しました。この場合は前者が優先され、eks-cluster-name
タグの値は my-cluster
になります。