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:
-
Gunakan
aws:SourceArn
jika Anda hanya menginginkan satu sumber daya yang terkait dengan akses lintas layanan. -
Gunakan
aws:SourceAccount
jika Anda ingin mengizinkan sumber daya apa pun di akun tertentu yang terkait dengan penggunaan lintas layanan. -
Jika
aws:SourceArn
kunci tidak berisi ID akun, Anda harus menggunakan kedua kunci konteks kondisi global (aws:SourceArn
danaws:SourceAccount
) untuk membatasi izin. -
Jika Anda menggunakan kunci konteks kondisi global dan
aws: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:SourceAccount
Bersyarat:
{ "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:SourceArn
Bersyarat:
{ "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:SourceAccount
Bersyarat:
{ "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:SourceArn
Bersyarat:
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:SourceAccount
Bersyarat:
{ "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:SourceArn
Bersyarat:
{ "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:SourceAccount
Dengan IDAWS akun Anda -
Kunci konteks kondisi global
aws: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/*" } ] }