例: AppStream 2.0 Application の Amazon S3 バケットポリシーにおけるサービス間の混乱した代理の防止 - Amazon AppStream 2.0

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

例: AppStream 2.0 Application の Amazon S3 バケットポリシーにおけるサービス間の混乱した代理の防止

Amazon S3 バケットにデータを保存すると、バケットで混乱した代理問題が発生する可能性があります。これにより、Elastic フリート、App Block、セットアップスクリプト、アプリケーションアイコン、セッションスクリプトなどのデータが悪意のある攻撃者に対して脆弱になる可能性があります。

混乱した代理問題を防ぐため、ELASTIC-FLEET-EXAMPLE-BUCKET の Amazon S3 バケットポリシーで、aws:SourceAccount 条件または aws:SourceArn 条件を指定できます。

以下のリソースポリシーは、以下のいずれかの問題に関する混乱した代理問題を防止する方法を説明しています。

  • AWS アカウント ID の aws:SourceAccount

  • グローバル条件コンテキストキー aws:SourceArn

AppStream 2.0 は現在、アプリケーションアイコンの混乱した代理の防止をサポートしていません。このサービスは VHD ファイルとセットアップスクリプトのみをサポートします。アプリケーションアイコンに条件を追加しようとしても、アイコンはエンドユーザーに表示されません。

次の例では、バケットポリシーは、所有者のアカウントの AppStream 2.0 Elastic フリートリソースにのみ、ELASTIC_FLEET_EXAMPLE_BUCKET へのアクセスを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "your AWS アカウント ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

また、aws:SourceArn 条件を使用して、特定リソースへのリソースアクセスを制限できます。

注記

リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー aws:SourceArn で、ARN の不明な部分を示すためにワイルドカード (*) を使用します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws-partition}:appstream:{your region name}:{your AWS account ID}:app-block/*" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

aws:SourceArn および aws:SourceAccount 条件を使用して、特定のリソースおよびアカウントへのリソースアクセスを制限できます。

注記

リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバル条件コンテキストキー aws:SourceArn で、ARN の不明な部分を示すためにワイルドカード (*) を使用します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your AWS account ID}:app-block/*" }, "StringEquals": { "aws:SourceAccount": "your AWS account ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }