サービス間の混乱した代理の防止 - Amazon Quantum 台帳データベース (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サービス間の混乱した代理の防止

重要

サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了QLDBまで Amazon を使用できます。詳細については、「Amazon Ledger QLDB を Amazon Aurora Postgre に移行するSQL」を参照してください。

混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。

サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。混乱した代理問題を防ぐために、 は、アカウント内のリソースへのアクセスが許可されているサービスプリンシパルを持つすべてのサービスのデータを保護するのに役立つツール AWS を提供します。

リソースポリシーで aws:SourceArnおよび aws:SourceAccount のグローバル条件コンテキストキーを使用して、Amazon が別のサービスにQLDB付与するアクセス許可をリソースに制限することをお勧めします。グローバル条件コンテキストキーの両方を使用しており、それらが同じポリシーステートメントで使用される場合、aws:SourceAccount 値と aws:SourceArn 値のアカウントが同じアカウント ID を使用する必要があります。

次の表は、 ExportJournalToS3および StreamsJournalToKinesisQLDBAPIオペレーションaws:SourceArnで の可能な値を示しています。これらのオペレーションは、 AWS Security Token Service (AWS STS) を呼び出して、指定した IAM ロールを引き受けるため、このセキュリティ問題の範囲内です。

API オペレーション 呼び出されたサービス aws:SourceArn
ExportJournalToS3 AWS STS (AssumeRole)

QLDB がアカウント内のQLDBリソースのロールを引き受けることを許可します。

arn:aws:qldb:us-east-1:123456789012:*

現在、 はジャーナルエクスポートARNでのみこのワイルドカードQLDBをサポートしています。

StreamsJournalToKinesis AWS STS (AssumeRole)

が特定のQLDBストリームのロールを引き受けQLDBることを許可します。

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/IiPT4brpZCqCq3f4MTHbYy

注: ストリーム ID は、ストリームリソースの作成ARN後にのみ で指定できます。この を使用するとARN、ロールを 1 QLDB つのストリームにのみ使用することを許可できます。

QLDB が台帳のQLDBストリームのロールを引き受けることを許可します。

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*

QLDB がアカウント内のストリームのロールを引き受けQLDBることを許可します。

arn:aws:qldb:us-east-1:123456789012:stream/*

QLDB がアカウント内のQLDBリソースのロールを引き受けることを許可します。

arn:aws:qldb:us-east-1:123456789012:*

混乱した代理問題から保護する最も効果的な方法は、リソースARNがいっぱいになった aws:SourceArn グローバル条件コンテキストキーを使用することです。リソースARNの全体がわからない場合、または複数のリソースを指定する場合は、aws:SourceArnグローバルコンテキスト条件キーをワイルドカード文字 (*) ARNで の未知部分に使用します。例えば、 ですarn:aws:qldb:us-east-1:123456789012:*

次の IAMロールの信頼ポリシーの例は、 aws:SourceArnおよび aws:SourceAccount グローバル条件コンテキストキーを使用して、混乱した代理問題を回避する方法を示しています。この信頼ポリシーでは、 QLDBは台帳myExampleLedgerのみのアカウント内の任意のQLDBストリーム123456789012のロールを引き受けることができます。

このポリシーを使用するには、us-east-1, 123456789012 および myExampleLedger 自分の情報を含む の例。

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }