

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

# Pencegahan "confused deputy" lintas layanan
<a name="cross-service-confused-deputy-prevention"></a>

Dalam AWS, peniruan lintas layanan dapat terjadi ketika satu layanan (layanan panggilan) *memanggil layanan* lain (layanan yang *disebut*). Layanan panggilan dapat dimanipulasi untuk bertindak atas sumber daya pelanggan lain meskipun seharusnya tidak memiliki izin yang tepat, yang mengakibatkan masalah wakil yang membingungkan.

Untuk mencegah hal ini, AWS sediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda. 

Sebaiknya gunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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)dan global dalam kebijakan sumber daya untuk membatasi izin yang diberikan Amazon Rekognition kepada layanan lain ke sumber daya. 

Jika nilai `aws:SourceArn` tidak berisi ID akun, seperti ARN bucket Amazon S3, Anda harus menggunakan kedua kunci untuk membatasi izin. Jika Anda menggunakan kedua kunci dan `aws:SourceArn` nilai berisi ID akun, `aws:SourceAccount` nilai dan akun dalam `aws:SourceArn` nilai harus menggunakan ID akun yang sama ketika 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 mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Nilai `aws:SourceArn` harus ARN dari sumber daya yang digunakan oleh Rekognition, yang ditentukan dengan format berikut:. `arn:aws:rekognition:region:account:resource`

Nilai `arn:User ARN` harus ARN dari pengguna yang akan memanggil operasi analisis video (pengguna yang mengambil peran).

Pendekatan yang direkomendasikan untuk masalah wakil yang membingungkan adalah dengan menggunakan kunci konteks kondisi `aws:SourceArn` global dengan ARN sumber daya penuh. 

 Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan `aws:SourceArn` kunci dengan karakter wildcard (`*`) untuk bagian ARN yang tidak diketahui. Misalnya, `arn:aws:rekognition:*:111122223333:*`. 

Untuk melindungi dari masalah wakil yang membingungkan, lakukan langkah-langkah berikut:

1. Di panel navigasi konsol IAM pilih opsi **Peran**. Konsol akan menampilkan peran untuk akun Anda saat ini.

1. Pilih nama peran yang ingin Anda ubah. Peran yang Anda ubah harus memiliki kebijakan **AmazonRekognitionServiceRole**izin. Pilih tab **Trust relationship**.

1. Pilih **Edit kebijakan kepercayaan**.

1. Pada halaman **Edit kebijakan kepercayaan**, ganti kebijakan JSON default dengan kebijakan yang menggunakan salah satu atau kedua kunci `aws:SourceArn` konteks kondisi `aws:SourceAccount` global. Lihat contoh kebijakan berikut.

1. Pilih **Perbarui kebijakan**.

Contoh berikut adalah kebijakan kepercayaan yang menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan global di Amazon Rekognition untuk mencegah masalah wakil yang membingungkan.

Jika Anda bekerja menyimpan dan streaming video, Anda dapat menggunakan kebijakan seperti berikut dalam peran IAM Anda:

Jika Anda bekerja secara eksklusif dengan video tersimpan, Anda dapat menggunakan kebijakan seperti berikut dalam peran IAM Anda (perhatikan bahwa Anda tidak harus menyertakan `StringLike` argumen yang menentukan): `streamprocessor`