このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
Amazon EKS におけるサービス間の混乱した代理の防止
混乱した代理問題とは、あるアクションを実行する許可を持たないエンティティが、より多くの特権を持つエンティティにアクションの実行を強制できることで生じるセキュリティ上の問題です。AWS では、サービス間でのなりすましが、混乱した代理問題を生じさせる可能性があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスが操作され、それ自身のアクセス許可が使用されて、本来アクセス許可が付与されるべきではない方法により、別の顧客のリソースに影響を与える可能性があります。これを防ぐため、AWS では、アカウントのリソースへのアクセス権が付与されたサービスプリンシパルで、すべてのサービスのデータを保護するために役立つツールを提供しています。
リソースポリシー内では aws:SourceArn
および aws:SourceAccount
のグローバル条件コンテキストキーを使用して、Amazon Elastic Kubernetes Service (Amazon EKS) が別のサービスに付与する、リソースへのアクセス許可を制限することをお勧めします。
-
aws:SourceArn
-
1 つのリソースだけをクロスサービスのアクセスに関連付ける場合は、
aws:SourceArn
を使用します。 -
aws:SourceAccount
-
アカウント内の任意のリソースをクロスサービスの使用に関連付ける場合は、
aws:SourceAccount
を使用します。
混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して aws:SourceArn
グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー aws:SourceArn
で、ARN の未知部分を示すためにワイルドカード文字 (*) を使用します。例えば、
arn:aws:<servicename>:*:<123456789012>:*
。
aws:SourceArn
の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方の aws:SourceAccount
と aws:SourceArn
を使用して、アクセス許可を制限する必要があります。
Amazon EKS クラスターロールのクロスサービスにおける混乱した代理を防止する
Amazon EKS クラスター IAM ロールはクラスターごとに必要です。Amazon EKS によって管理される Kubernetes クラスターはこのロールを使用してノードを管理し、レガシークラウドプロバイダー
ソースの ARN 形式
aws:SourceArn
の値は、
arn:aws:eks:
という形式の EKS クラスターの ARN にする必要があります。例えば、region
:account
:cluster/cluster-name
arn:aws:eks:us-west-2:123456789012:cluster/my-cluster
です。
EKS クラスターロールの信頼ポリシーの形式
次の例では、Amazon EKS で aws:SourceArn
と aws:SourceAccount
のグローバル条件コンテキストキーを使用して、「混乱した代理」問題を回避する方法を示します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-cluster" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }