Cross-service pencegahan wakil yang bingung - AWS CodeDeploy

View a markdown version of this page

Cross-service pencegahan wakil yang bingung - AWS CodeDeploy

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

Cross-service pencegahan wakil yang bingung

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Cross-service peniruan diri dapat terjadi ketika satu layanan (layanan panggilan) memanggil layanan lain (layanan yang disebut). Layanan pemanggilan dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan prinsipal layanan yang telah diberikan akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisi SourceAccount global https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn aws: SourceArn dan aws: dalam kebijakan sumber daya untuk membatasi izin yang CodeDeploy memberikan layanan lain ke sumber daya. Jika Anda menggunakan kunci konteks kondisi global dan nilai aws:SourceArn berisi ID akun, nilai aws:SourceAccount dan akun dalam nilai aws:SourceArn harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama. Gunakan aws:SourceArn jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan. Gunakan aws:SourceAccount jika Anda ingin sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas-layanan.

Untuk EC2/On-Premises, AWS Lambda, dan penerapan Amazon ECS reguler, nilai aws:SourceArn harus mencakup grup CodeDeploy penerapan ARN yang CodeDeploy diizinkan untuk mengambil peran IAM.

Untuk penerapan Amazon blue/green ECS yang dibuat melalui CloudFormation, nilai aws:SourceArn harus menyertakan CloudFormation tumpukan ARN yang CodeDeploy diizinkan untuk mengambil peran IAM.

Cara paling efektif untuk melindungi dari masalah wakil yang bingung adalah dengan menggunakan aws:SourceArn kunci dengan ARN penuh sumber daya. Jika Anda tidak mengetahui ARN lengkap atau jika Anda menentukan beberapa sumber daya, gunakan karakter wildcard (*) untuk bagian yang tidak diketahui.

Misalnya, Anda dapat menggunakan kebijakan kepercayaan berikut dengan EC2/On-Premises, AWS Lambda, atau penyebaran Amazon ECS biasa:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "codedeploy.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:codedeploy:us-east-1:111122223333:deploymentgroup:myApplication/*" } } } ] }

Untuk pener apan Amazon ECS blue/green yang dibuat melalui CloudFormation, Anda dapat menggunakan:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "codedeploy.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudformation:us-east-1:111122223333:stack/MyCloudFormationStackName/*" } } } ] }