翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon でのサービス間の混乱した代理の防止 EventBridge
混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐため、 AWS では、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールを提供しています。
リソースポリシーで aws:SourceArn
および aws:SourceAccount
グローバル条件コンテキストキーを使用して、Amazon が別のサービスに EventBridge 付与するアクセス許可をリソースに制限することをお勧めします。クロスサービスアクセスにリソースを 1 つだけ関連付けたい場合は、aws:SourceArn
を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、aws:SourceAccount
を使用します。
混乱した代理問題から保護する最も効果的な方法は、リソースARNがいっぱいになった aws:SourceArn
グローバル条件コンテキストキーを使用することです。リソースARNの全体がわからない場合や、複数のリソースを指定する場合は、 の不明な部分にワイルドカード文字 (*
) を含むaws:SourceArn
グローバルコンテキスト条件キーを使用しますARN。例えば arn:aws:
です。servicename
:*:123456789012
:*
aws:SourceArn
値に Amazon S3 バケット などのアカウント ID が含まれていない場合はARN、両方のグローバル条件コンテキストキーを使用してアクセス許可を制限する必要があります。
イベントバス
EventBridge イベントバスルールターゲットの場合、 の値はルール aws:SourceArn
である必要がありますARN。
次の例は、 で aws:SourceArn
および aws:SourceAccount
グローバル条件コンテキストキーを使用して、混乱した代理問題 EventBridge を回避する方法を示しています。この例は、 EventBridge ルールで使用されるロールの信頼ポリシーで使用するためのものです。
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:events:*:123456789012:rule/myRule" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }
EventBridge パイプ
EventBridge Pipes の場合、 の値はパイプ aws:SourceArn
である必要がありますARN。
次の例は、 で aws:SourceArn
および aws:SourceAccount
グローバル条件コンテキストキーを使用して、混乱した代理問題 EventBridge を回避する方法を示しています。この例では、 EventBridge Pipes が使用するロールのロール信頼ポリシーで使用します。
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:pipe:*:123456789012::pipe/example" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }