翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: AppStream 2.0 Application の Amazon S3 バケットポリシーにおけるサービス間の混乱した代理の防止
Amazon S3 バケットにデータを保存すると、バケットで混乱した代理問題が発生する可能性があります。これにより、Elastic フリート、App Block、セットアップスクリプト、アプリケーションアイコン、セッションスクリプトなどのデータが悪意のある攻撃者に対して脆弱になる可能性があります。
混乱した代理問題を防ぐため、ELASTIC-FLEET-EXAMPLE-BUCKET
の Amazon S3 バケットポリシーで、aws:SourceAccount
条件または aws:SourceArn
条件を指定できます。
以下のリソースポリシーは、以下のいずれかの問題に関する混乱した代理問題を防止する方法を説明しています。
AppStream 2.0 は現在、アプリケーションアイコンの混乱した代理の防止をサポートしていません。このサービスは VHD ファイルとセットアップスクリプトのみをサポートします。アプリケーションアイコンに条件を追加しようとしても、アイコンはエンドユーザーに表示されません。
次の例では、バケットポリシーは、所有者のアカウントの AppStream 2.0 Elastic フリートリソースにのみ、ELASTIC_FLEET_EXAMPLE_BUCKET
へのアクセスを許可します。
- JSON
-
-
{
"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 の不明な部分を示すためにワイルドカード (*) を使用します。
- JSON
-
-
{
"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:appstream:us-east-1
:111122223333
: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 の不明な部分を示すためにワイルドカード (*) を使用します。
- JSON
-
-
{
"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:appstream:us-east-1
:111122223333
: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/*"
}
]
}