

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
<a name="security_confused_deputy"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) aws: SourceArn ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 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](deployments-create-ecs-cfn.md), 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](deployments-create-ecs-cfn.md), 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}}/*"
                }
            }
        }
    ]
}
```

------