翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サービス間の混乱した代理の防止
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:*
代理の混乱が生じないようにするには、次のステップを実行します。
-
IAM コンソールのナビゲーションペインで [ロール] をクリックします。コンソールに、現在のアカウントのロールが表示されます。
-
修正するロールの名前を選択します。修正するロールには、AmazonRekognitionServiceRole アクセス権限ポリシーがあるはずです。[信頼関係] タブを選択します。
-
[信頼ポリシーを編集] を選択します。
-
[信頼ポリシーを編集] ページで、デフォルトの JSON ポリシーを、
aws:SourceArn
とaws:SourceAccount
のグローバル条件コンテキストキーのいずれか、または両方を使用しているポリシーに置き換えます。以下のポリシー例を参照してください。 -
[ポリシーの更新] を選択します。
以下は、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" } } } ] }