

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

# Dukungan ARN dalam konfigurasi RabbitMQ
<a name="arn-support-rabbitmq-configuration"></a>

Amazon MQ untuk RabbitMQ mendukung AWS ARNs nilai beberapa pengaturan konfigurasi RabbitMQ. [Ini diaktifkan oleh plugin komunitas RabbitMQ rabbitmq-aws.](https://github.com/amazon-mq/rabbitmq-aws) Plugin ini dikembangkan dan dikelola oleh Amazon MQ dan juga dapat digunakan di broker RabbitMQ yang dihosting sendiri yang tidak dikelola oleh Amazon MQ.

**Pertimbangan penting**  
Nilai ARN yang diselesaikan yang diambil oleh plugin aws diteruskan langsung ke proses RabbitMQ saat runtime. Mereka tidak disimpan di tempat lain di node RabbitMQ.
Amazon MQ untuk RabbitMQ memerlukan peran IAM yang dapat diasumsikan oleh Amazon MQ untuk mengakses yang dikonfigurasi. ARNs Ini dikonfigurasi dengan pengaturan`aws.arns.assume_role_arn`.
Pengguna yang menelepon CreateBroker atau UpdateBroker APIs dengan konfigurasi broker yang menyertakan peran IAM harus memiliki `iam:PassRole` izin untuk peran itu.
Peran IAM harus ada di AWS akun yang sama dengan broker RabbitMQ. Semua ARNs dalam konfigurasi harus ada di AWS wilayah yang sama dengan broker RabbitMQ.
Amazon MQ menambahkan kunci bersyarat global IAM `aws:SourceAccount` dan `aws:SourceArn` saat mengasumsikan peran IAM. Nilai-nilai ini harus digunakan dalam kebijakan IAM yang melekat pada peran untuk [perlindungan wakil yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

**Topics**
+ [Kunci yang didukung](#arn-support-supported-keys)
+ [Sampel kebijakan IAM](#arn-support-iam-policy-samples)
+ [Validasi akses](#arn-support-validation)
+ [Negara karantina broker terkait](#arn-support-quarantine-states)
+ [Contoh skenario](#arn-support-example-scenario)

## Kunci yang didukung
<a name="arn-support-supported-keys"></a>

`aws.arns.assume_role_arn`  
IAM berperan ARN yang diasumsikan Amazon MQ untuk mengakses sumber daya lain. AWS Diperlukan ketika konfigurasi ARN lainnya digunakan.

### Titik akhir AMQP
<a name="arn-support-amqp-endpoint"></a>


| Kunci konfigurasi | Deskripsi | 
| --- | --- | 
| aws.arns.ssl\$1options.cacertfile | File otoritas sertifikat untuk koneksi SSL/TLS klien. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 

### Plugin manajemen RabbitMQ
<a name="arn-support-management-plugin"></a>


| Kunci konfigurasi | Deskripsi | 
| --- | --- | 
| aws.arns.management.ssl.cacertfile | File otoritas sertifikat untuk SSL/TLS koneksi antarmuka manajemen. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 

### Plugin RabbitMQ 2.0 OAuth
<a name="arn-support-oauth2-plugin"></a>


| Kunci konfigurasi | Deskripsi | 
| --- | --- | 
| aws.arns.auth\$1oauth2.https.cacertfile | File otoritas sertifikat untuk koneksi OAuth 2.0 HTTPS. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 

### Plugin otentikasi HTTP RabbitMQ
<a name="arn-support-http-plugin"></a>


| Kunci konfigurasi | Deskripsi | 
| --- | --- | 
| aws.arns.auth\$1http.ssl\$1options.cacertfile | File otoritas sertifikat untuk SSL/TLS koneksi otentikasi HTTP. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 
| aws.arns.auth\$1http.ssl\$1options.certfile | File sertifikat untuk koneksi TLS timbal balik antara Amazon MQ dan server otentikasi HTTP. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 
| aws.arns.auth\$1http.ssl\$1options.keyfile | File kunci pribadi untuk koneksi TLS timbal balik antara Amazon MQ dan server otentikasi HTTP. Amazon MQ membutuhkan penggunaan AWS Secrets Manager untuk menyimpan kunci pribadi. | 

### Plugin RabbitMQ LDAP
<a name="arn-support-ldap-plugin"></a>


| Kunci konfigurasi | Deskripsi | 
| --- | --- | 
| aws.arns.auth\$1ldap.ssl\$1options.cacertfile | File otoritas sertifikat untuk SSL/TLS koneksi LDAP. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 
| aws.arns.auth\$1ldap.ssl\$1options.certfile | File sertifikat untuk koneksi TLS timbal balik antara Amazon MQ dan server LDAP. Amazon MQ memerlukan penggunaan Amazon S3 atau untuk menyimpan sertifikat. | 
| aws.arns.auth\$1ldap.ssl\$1options.keyfile | File kunci pribadi untuk koneksi TLS timbal balik antara Amazon MQ dan server LDAP. Amazon MQ membutuhkan penggunaan AWS Secrets Manager untuk menyimpan kunci pribadi. | 
| aws.arns.auth\$1ldap.dn\$1lookup\$1bind.password | Kata sandi untuk LDAP DN lookup bind. Amazon MQ mengharuskan penggunaan AWS Secrets Manager untuk menyimpan kata sandi sebagai nilai teks biasa. | 
| aws.arns.auth\$1ldap.other\$1bind.password | Kata sandi untuk LDAP mengikat lainnya. Amazon MQ mengharuskan penggunaan AWS Secrets Manager untuk menyimpan kata sandi sebagai nilai teks biasa. | 

## Sampel kebijakan IAM
<a name="arn-support-iam-policy-samples"></a>

Untuk contoh kebijakan IAM termasuk mengasumsikan dokumen kebijakan peran dan dokumen kebijakan peran, lihat implementasi [sampel CDK](https://github.com/aws-samples/amazon-mq-samples/blob/main/rabbitmq-samples/rabbitmq-ldap-activedirectory-sample/lib/rabbitmq-activedirectory-stack.ts#L232).

Lihat [Menggunakan otentikasi dan otorisasi LDAP](rabbitmq-ldap-tutorial.md) langkah-langkah tentang cara mengatur AWS Secrets Manager dan sumber daya Amazon S3.

## Validasi akses
<a name="arn-support-validation"></a>

Untuk memecahkan masalah skenario di mana nilai ARN tidak dapat diambil, plugin aws mendukung [titik akhir API manajemen RabbitMQ](https://github.com/amazon-mq/rabbitmq-aws/blob/main/API.md) yang dapat dipanggil untuk memeriksa apakah Amazon MQ berhasil mengambil peran dan menyelesaikannya. AWS ARNs Ini menghindari kebutuhan untuk memperbarui konfigurasi broker, memperbarui broker dengan revisi konfigurasi baru dan reboot broker untuk menguji perubahan konfigurasi.

**catatan**  
Penggunaan API ini memerlukan pengguna administrator RabbitMQ yang sudah ada. Amazon MQ merekomendasikan untuk membuat pialang uji dengan pengguna internal selain metode akses lainnya. Lihat [mengaktifkan otentikasi OAuth 2.0 dan sederhana (internal)](oauth-tutorial.md#oauth-tutorial-config-both-auth-methods-using-cli). Pengguna ini kemudian dapat digunakan untuk mengakses API validasi.

**catatan**  
Meskipun plugin aws mendukung penerusan peran baru sebagai input ke API validasi, parameter ini tidak didukung oleh Amazon MQ. Peran IAM yang digunakan untuk validasi harus sesuai dengan nilai `aws.arns.assume_role_arn` dalam konfigurasi broker.

## Negara karantina broker terkait
<a name="arn-support-quarantine-states"></a>

Untuk informasi tentang status karantina broker yang terkait dengan masalah dukungan ARN, lihat:
+ [RABBITMQ\$1INVALID\$1ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md)
+ [RABBITMQ\$1INVALID\$1ARN\$1LDAP](troubleshooting-action-required-codes-invalid-arn-ldap.md)
+ [RABBITMQ\$1INVALID\$1ARN](troubleshooting-action-required-codes-invalid-arn.md)

## Contoh skenario
<a name="arn-support-example-scenario"></a>
+ Broker `b-f0fc695e-2f9c-486b-845a-988023a3e55b` telah dikonfigurasi untuk menggunakan peran IAM `<role>` untuk mengakses rahasia AWS Secrets Manager `<arn>`
+ Jika peran yang diberikan ke Amazon MQ tidak memiliki izin baca pada AWS Secrets Manager rahasia, kesalahan berikut akan ditampilkan di log RabbitMQ:

  ```
  [error] <0.254.0> aws_arn_config: {handle_assume_role,{error,{assume_role_failed,"AWS service is unavailable"}}}
  ```

  Selain itu, broker akan memasuki negara `INVALID_ASSUMEROLE` karantina. Untuk informasi lebih lanjut, lihat [INVALID\$1ASSUMEROLE](troubleshooting-action-required-codes-invalid-assumerole.md).
+ Upaya otentikasi LDAP akan gagal dengan kesalahan berikut:

  ```
  [error] <0.254.0> LDAP bind failed: invalid_credentials
  ```
+ Perbaiki peran IAM dengan izin yang tepat
+ Panggil titik akhir validasi untuk memverifikasi apakah RabbitMQ sekarang dapat mengakses rahasia:

  ```
  curl -4su 'guest:guest' -XPUT -H 'content-type: application/json' <broker-endpoint>/api/aws/arn/validate -d '{"assume_role_arn":"arn:aws:iam::<account-id>:role/<role-name>","arns":["arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>"]}' | jq '.'
  ```