Amazon AppStream 2.0 Cross-Service Bingung Deputi Pencegahan - Amazon AppStream 2.0

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Amazon AppStream 2.0 Cross-Service Bingung Deputi Pencegahan

Masalah wakil yang bingung adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan memaksakan entitas yang lebih istimewa untuk melakukan tindakan. DiAWS, peniruan lintas layanan dapat membuat sumber daya akun rentan terhadap masalah wakil yang bingung. Peniruan lintas layanan terjadi ketika satu layanan (layanan panggilan) memanggil layanan lain (layanan yang disebut). Layanan panggilan dapat memanipulasi layanan yang disebut untuk menggunakan izinnya untuk bertindak pada sumber daya pelanggan dengan cara yang layanan panggilan tidak memiliki izin untuk melakukan untuk dirinya sendiri. Untuk mencegah hal ini,AWS sediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsipal layanan yang memiliki akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisiaws:SourceAccount globalaws:SourceArn dan dalam kebijakan sumber daya untuk membatasi izin saat mengakses sumber daya ini. Panduan berikut merinci rekomendasi dan persyaratan saat Anda menggunakan kunci ini untuk melindungi sumber daya Anda:

  • Gunakanaws:SourceArn jika Anda hanya menginginkan satu sumber daya yang terkait dengan akses lintas layanan.

  • Gunakanaws:SourceAccount jika Anda ingin mengizinkan sumber daya apa pun di akun tertentu yang terkait dengan penggunaan lintas layanan.

  • Jikaaws:SourceArn kunci tidak berisi ID akun, Anda harus menggunakan kedua kunci konteks kondisi global (aws:SourceArndanaws:SourceAccount) untuk membatasi izin.

  • Jika Anda menggunakan kunci konteks kondisi global danaws:SourceArn nilainya berisi ID akun,aws:SourceAccount kunci tersebut harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Cara paling efektif untuk melindungi dari masalah wakil yang bingung adalah dengan menggunakan Amazon Resource Name (ARN) dari sumber daya yang ingin Anda izinkan. Jika Anda tidak mengetahui ARN lengkap sumber daya, gunakan kunci kondisi konteksaws:SourceArn global dengan wildcard (seperti*) untuk bagian ARN yang tidak diketahui. Anda juga dapat menggunakan wildcard di ARN jika Anda ingin menentukan beberapa sumber daya. Misalnya, Anda dapat memformat ARN sebagaiarn:aws:servicename::region-name::your Akun AWS ID:*.

Contoh: AppStream 2.0 peran layanan lintas layanan bingung pencegahan wakil

AppStream 2.0 mengasumsikan peran layanan menggunakan berbagai ARN sumber daya, yang mengarah ke pernyataan kondisional yang rumit. Sebaiknya gunakan jenis sumber daya wildcard untuk mencegah kegagalan sumber daya AppStream 2.0 yang tidak terduga.

contoh aws:SourceAccountBersyarat:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your Akun AWS ID" } } } ] }
contoh aws:SourceArnBersyarat:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your Akun AWS ID}:*" } } } ] }

Contoh: AppStream 2.0 peran mesin armada lintas layanan bingung wakil pencegahan

contoh aws:SourceAccountBersyarat:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your Akun AWS ID" } } } ] }
contoh aws:SourceArnBersyarat:
catatan

Jika Anda ingin menggunakan satu peran IAM untuk beberapa armada, sebaiknya gunakan kunci kondisi konteksaws:SourceArn global dengan wildcard (*) untuk mencocokkan beberapa sumber daya armada AppStream 2.0.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your Akun AWS ID}:fleet/{your fleet name}" } } } ] }

Contoh: AppStream 2.0 Skrip sesi armada elastis kebijakan ember Amazon S3 lintas layanan bingung pencegahan wakil

contoh aws:SourceAccountBersyarat:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "s3:GetObject", "Resource": "your session script S3 path", "Condition": { "StringEquals": { "aws:SourceAccount": "your Akun AWS ID" } } } ] }
contoh aws:SourceArnBersyarat:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "s3:GetObject", "Resource": "your session script S3 path", "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your Akun AWS ID}:fleet/{your fleet name}" } } } ] }

Contoh: AppStream 2.0 Aplikasi Amazon S3 kebijakan bucket cross-service bingung wakil pencegahan

Saat Anda menyimpan data dalam bucket Amazon S3, bucket mungkin terkena masalah wakil yang membingungkan. Ini dapat meninggalkan data seperti armada elastis, blok aplikasi, skrip penyiapan, ikon aplikasi, dan skrip sesi rentan terhadap aktor jahat.

Untuk mencegah masalah wakil yang membingungkan, Anda dapat menentukanaws:SourceAccount kondisi atauaws:SourceArn kondisi dalam kebijakan bucket Amazon S3 untukELASTIC-FLEET-EXAMPLE-BUCKET.

Kebijakan sumber daya di bawah ini menunjukkan cara mencegah masalah wakil yang bingung dengan salah satu dari berikut ini:

  • aws:SourceAccountDengan IDAWS akun Anda

  • Kunci konteks kondisi globalaws:SourceArn

AppStream 2.0 saat ini tidak mendukung pencegahan wakil bingung untuk ikon aplikasi. Layanan ini hanya mendukung file VHD dan skrip pengaturan. Jika Anda mencoba menambahkan kondisi tambahan untuk ikon aplikasi, ikon tidak akan ditampilkan kepada pengguna akhir.

Pada contoh berikut, kebijakan bucket hanya mengizinkan AppStream 2.0 sumber daya armada elastis di akun pemilik untuk mengaksesELASTIC_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 Akun AWS ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

Anda juga dapat menggunakanaws:SourceArn kondisi untuk membatasi akses sumber daya untuk sumber daya tertentu.

catatan

Jika Anda tidak mengetahui ARN lengkap sumber daya, atau Anda ingin menentukan beberapa sumber daya, gunakan kunci kondisi konteksaws:SourceArn global dengan wildcard (*) untuk bagian ARN yang tidak diketahui.

{ "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/*" } ] }

Anda dapat menggunakanaws:SourceArn danaws:SourceAccount kondisi untuk membatasi akses sumber daya untuk sumber daya dan akun tertentu.

catatan

Jika Anda tidak mengetahui ARN lengkap sumber daya, atau jika Anda ingin menentukan beberapa sumber daya, gunakan kunci kondisi konteksaws:SourceArn global dengan wildcard (*) untuk bagian ARN yang tidak diketahui.

{ "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/*" } ] }