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

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

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

AWS では、サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。適切なアクセス権限を持たないはずなのに、呼び出し元サービスが、別の顧客のリソースを処理するように操作され、代理の混乱が生じる可能性があります。

これを防ぐため、AWS では、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールを提供しています。

リソースポリシー内では aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストキーを使用して、Amazon Rekognition が別のサービスに付与する、リソースへのアクセス許可を制限することをお勧めします。

aws:SourceArn の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のキーを使用して、アクセス許可を制限する必要があります。両方のキーを使用し、aws:SourceArn 値にアカウント ID が含まれている場合、aws:SourceAccount 値と aws:SourceArn 値内のアカウントは、同じポリシーステートメントで使用するときに、同じアカウント ID を使用する必要があります。

クロスサービスアクセスにリソースを 1 つだけ関連付けたい場合は、aws:SourceArn を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、aws:SourceAccount を使用します。

aws:SourceArn の値は Rekognition が使用するリソースの ARN で、arn:aws:rekognition:region:account:resource の形式で指定する必要があります。

arn:User ARN の値は、ビデオ分析オペレーションを呼び出すユーザー (ロールを引き受けるユーザー) の ARN である必要があります。

代理の混乱が生じないようにするための最も効果的な方法は、リソースの完全な ARN を指定しながら、aws:SourceArn グローバル条件コンテキストキーを使用することです。

リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、aws:SourceArn キーで、ARN の未知部分を示すワイルドカード文字 (*) を使用します。例えば、arn:aws:rekognition:*:111122223333:* と指定します。

代理の混乱が生じないようにするには、次のステップを実行します。

  1. IAM コンソールのナビゲーションペインで [ロール] をクリックします。コンソールに、現在のアカウントのロールが表示されます。

  2. 修正するロールの名前を選択します。修正するロールには、AmazonRekognitionServiceRole アクセス権限ポリシーがあるはずです。[信頼関係] タブを選択します。

  3. [信頼ポリシーを編集] を選択します。

  4. [信頼ポリシーを編集] ページで、デフォルトの JSON ポリシーを、aws:SourceArnaws:SourceAccount のグローバル条件コンテキストキーのいずれか、または両方を使用しているポリシーに置き換えます。以下のポリシー例を参照してください。

  5. [ポリシーの更新] を選択します。

以下は、Amazon Rekognition で aws:SourceArn および aws:SourceAccount グローバル条件コンテキストキーを使用して代理の混乱を防ぐ例です。

ビデオを保存してストリーミング配信する場合は、IAM ロールに次のようなポリシーを使用できます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"rekognition.amazonaws.com", "AWS":"arn:User ARN" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" }, "StringLike":{ "aws:SourceArn":"arn:aws:rekognition:region:111122223333:streamprocessor/*" } } } ] }

保存されたビデオのみを使用する場合は、IAM ロールに次のようなポリシーを使用できます (streamprocessor を指定する StringLike 引数を含める必要はないことにご注意ください)。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"rekognition.amazonaws.com", "AWS":"arn:User ARN" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" } } } ] }