

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

# Identitas dan manajemen akses untuk AWS Database Migration Service
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) adalah Layanan AWS yang membantu administrator mengontrol akses ke AWS sumber daya dengan aman. Administrator IAM mengontrol siapa yang dapat *diautentikasi* (masuk) dan *diberi wewenang* (memiliki izin) untuk menggunakan sumber daya. AWS DMS IAM adalah Layanan AWS yang dapat Anda gunakan tanpa biaya tambahan.

**Topics**
+ [Audiens](#security_iam_audience)
+ [Mengautentikasi dengan identitas](#security_iam_authentication)
+ [Mengelola akses menggunakan kebijakan](#security_iam_access-manage)
+ [Bagaimana AWS Database Migration Service bekerja dengan IAM](security_iam_service-with-iam.md)
+ [AWS Database Migration Service contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md)
+ [Contoh kebijakan berbasis sumber daya untuk AWS KMS](security_iam_resource-based-policy-examples.md)
+ [Menggunakan rahasia untuk mengakses titik AWS Database Migration Service akhir](security_iam_secretsmanager.md)
+ [Menggunakan peran terkait layanan untuk AWS DMS](using-service-linked-roles.md)
+ [Memecahkan masalah AWS Database Migration Service identitas dan akses](security_iam_troubleshoot.md)
+ [Izin IAM diperlukan untuk menggunakan AWS DMS](#CHAP_Security.IAMPermissions)
+ [Membuat peran IAM untuk digunakan AWS DMS](#CHAP_Security.APIRole)
+ [Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md)
+ [AWS kebijakan terkelola untuk AWS Database Migration Service](security-iam-awsmanpol.md)

## Audiens
<a name="security_iam_audience"></a>

Cara Anda menggunakan AWS Identity and Access Management (IAM) berbeda berdasarkan peran Anda:
+ **Pengguna layanan** - minta izin dari administrator Anda jika Anda tidak dapat mengakses fitur (lihat [Memecahkan masalah AWS Database Migration Service identitas dan akses](security_iam_troubleshoot.md))
+ **Administrator layanan** - tentukan akses pengguna dan mengirimkan permintaan izin (lihat [Bagaimana AWS Database Migration Service bekerja dengan IAM](security_iam_service-with-iam.md))
+ **Administrator IAM** - tulis kebijakan untuk mengelola akses (lihat [AWS Database Migration Service contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md))

## Mengautentikasi dengan identitas
<a name="security_iam_authentication"></a>

Otentikasi adalah cara Anda masuk AWS menggunakan kredensi identitas Anda. Anda harus diautentikasi sebagai Pengguna root akun AWS, pengguna IAM, atau dengan mengasumsikan peran IAM.

Anda dapat masuk sebagai identitas federasi menggunakan kredensil dari sumber identitas seperti AWS IAM Identity Center (Pusat Identitas IAM), autentikasi masuk tunggal, atau kredensional. Google/Facebook Untuk informasi selengkapnya tentang cara masuk, lihat [Cara masuk ke Akun AWS Anda](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dalam *Panduan Pengguna AWS Sign-In *.

Untuk akses terprogram, AWS sediakan SDK dan CLI untuk menandatangani permintaan secara kriptografis. Untuk informasi selengkapnya, lihat [AWS Signature Version 4 untuk permintaan API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dalam *Panduan Pengguna IAM*.

### Akun AWS pengguna root
<a name="security_iam_authentication-rootuser"></a>

 Saat Anda membuat Akun AWS, Anda mulai dengan satu identitas masuk yang disebut *pengguna Akun AWS root* yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya. Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari. Untuk tugas yang memerlukan kredensial pengguna root, lihat [Tugas yang memerlukan kredensial pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dalam *Panduan Pengguna IAM*. 

### Pengguna dan grup IAM
<a name="security_iam_authentication-iamuser"></a>

*[Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* adalah identitas dengan izin khusus untuk satu orang atau aplikasi. Sebaiknya gunakan kredensial sementara alih-alih pengguna IAM dengan kredensial jangka panjang. Untuk informasi selengkapnya, lihat [Mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di Panduan Pengguna *IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) menentukan kumpulan pengguna IAM dan mempermudah pengelolaan izin untuk pengguna dalam jumlah besar. Untuk mempelajari selengkapnya, lihat [Kasus penggunaan untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dalam *Panduan Pengguna IAM*.

### Peran IAM
<a name="security_iam_authentication-iamrole"></a>

*[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* adalah identitas dengan izin khusus yang menyediakan kredensial sementara. Anda dapat mengambil peran dengan [beralih dari pengguna ke peran IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) atau dengan memanggil operasi AWS CLI atau AWS API. Untuk informasi selengkapnya, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*.

Peran IAM berguna untuk akses pengguna terfederasi, izin pengguna IAM sementara, akses lintas akun, akses lintas layanan, dan aplikasi yang berjalan di Amazon EC2. Untuk informasi selengkapnya, lihat [Akses sumber daya lintas akun di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dalam *Panduan Pengguna IAM*.

## Mengelola akses menggunakan kebijakan
<a name="security_iam_access-manage"></a>

Anda mengontrol akses AWS dengan membuat kebijakan dan melampirkannya ke AWS identitas atau sumber daya. Kebijakan menentukan izin saat dikaitkan dengan identitas atau sumber daya. AWS mengevaluasi kebijakan ini ketika kepala sekolah membuat permintaan. Sebagian besar kebijakan disimpan AWS sebagai dokumen JSON. Untuk informasi selengkapnya tentang dokumen kebijakan JSON, lihat [Gambaran umum kebijakan JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dalam *Panduan Pengguna IAM*.

Menggunakan kebijakan, administrator menentukan siapa yang memiliki akses ke apa dengan mendefinisikan **principal** mana yang dapat melakukan **tindakan** pada **sumber daya** apa, dan dalam **kondisi** apa.

Secara default, pengguna dan peran tidak memiliki izin. Administrator IAM membuat kebijakan IAM dan menambahkannya ke peran, yang kemudian dapat diambil oleh pengguna. Kebijakan IAM mendefinisikan izin terlepas dari metode yang Anda gunakan untuk melakukan operasinya.

### Kebijakan berbasis identitas
<a name="security_iam_access-manage-id-based-policies"></a>

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang Anda lampirkan ke identitas (pengguna, grup, atau peran). Kebijakan ini mengontrol tindakan apa yang bisa dilakukan oleh identitas tersebut, terhadap sumber daya yang mana, dan dalam kondisi apa. Untuk mempelajari cara membuat kebijakan berbasis identitas, lihat [Tentukan izin IAM kustom dengan kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dalam *Panduan Pengguna IAM*.

Kebijakan berbasis identitas dapat berupa *kebijakan inline* (disematkan langsung ke dalam satu identitas) atau *kebijakan terkelola* (kebijakan mandiri yang dilampirkan pada banyak identitas). Untuk mempelajari cara memilih antara kebijakan terkelola dan kebijakan inline, lihat [Pilih antara kebijakan terkelola dan kebijakan inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dalam *Panduan Pengguna IAM*.

### Kebijakan berbasis sumber daya
<a name="security_iam_access-manage-resource-based-policies"></a>

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumber daya. Contohnya termasuk *kebijakan kepercayaan peran IAM* dan *kebijakan bucket* Amazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanan dapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Anda harus [menentukan principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dalam kebijakan berbasis sumber daya.

Kebijakan berbasis sumber daya merupakan kebijakan inline yang terletak di layanan tersebut. Anda tidak dapat menggunakan kebijakan AWS terkelola dari IAM dalam kebijakan berbasis sumber daya.

### Daftar kontrol akses (ACLs)
<a name="security_iam_access-manage-acl"></a>

Access control lists (ACLs) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memiliki izin untuk mengakses sumber daya. ACLs mirip dengan kebijakan berbasis sumber daya, meskipun mereka tidak menggunakan format dokumen kebijakan JSON.

Amazon S3, AWS WAF, dan Amazon VPC adalah contoh layanan yang mendukung. ACLs Untuk mempelajari selengkapnya ACLs, lihat [Ringkasan daftar kontrol akses (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) di *Panduan Pengembang Layanan Penyimpanan Sederhana Amazon*.

### Jenis-jenis kebijakan lain
<a name="security_iam_access-manage-other-policies"></a>

AWS mendukung jenis kebijakan tambahan yang dapat menetapkan izin maksimum yang diberikan oleh jenis kebijakan yang lebih umum:
+ **Batasan izin** – Menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada entitas IAM. Untuk informasi selengkapnya, lihat [Batasan izin untuk entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dalam *Panduan Pengguna IAM*.
+ **Kebijakan kontrol layanan (SCPs)** — Tentukan izin maksimum untuk organisasi atau unit organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat [Kebijakan kontrol layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dalam *Panduan Pengguna AWS Organizations *.
+ **Kebijakan kontrol sumber daya (RCPs)** — Tetapkan izin maksimum yang tersedia untuk sumber daya di akun Anda. Untuk informasi selengkapnya, lihat [Kebijakan kontrol sumber daya (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) di *Panduan AWS Organizations Pengguna*.
+ **Kebijakan sesi** – Kebijakan lanjutan yang diteruskan sebagai parameter saat membuat sesi sementara untuk peran atau pengguna terfederasi. Untuk informasi selengkapnya, lihat [Kebijakan sesi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dalam *Panduan Pengguna IAM*.

### Berbagai jenis kebijakan
<a name="security_iam_access-manage-multiple-policies"></a>

Ketika beberapa jenis kebijakan berlaku pada suatu permintaan, izin yang dihasilkan lebih rumit untuk dipahami. Untuk mempelajari cara AWS menentukan apakah akan mengizinkan permintaan saat beberapa jenis kebijakan terlibat, lihat [Logika evaluasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) di *Panduan Pengguna IAM*.

# Bagaimana AWS Database Migration Service bekerja dengan IAM
<a name="security_iam_service-with-iam"></a>

Sebelum Anda menggunakan IAM untuk mengelola akses AWS DMS, Anda harus memahami fitur IAM apa yang tersedia untuk digunakan. AWS DMS Untuk mendapatkan pandangan tingkat tinggi tentang bagaimana AWS DMS dan AWS layanan lain bekerja dengan IAM, lihat [AWS layanan yang bekerja dengan IAM di Panduan Pengguna *IAM*](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

**Topics**
+ [AWS DMS kebijakan berbasis identitas](#security_iam_service-with-iam-id-based-policies)
+ [AWS DMS kebijakan berbasis sumber daya](#security_iam_service-with-iam-resource-based-policies)
+ [Otorisasi berdasarkan tag AWS DMS](#security_iam_service-with-iam-tags)
+ [Peran IAM untuk AWS DMS](#security_iam_service-with-iam-roles)
+ [Manajemen identitas dan akses untuk DMS Fleet Advisor](#fa-security-iam)

## AWS DMS kebijakan berbasis identitas
<a name="security_iam_service-with-iam-id-based-policies"></a>

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak, dan juga ketentuan di mana tindakan tersebut diperbolehkan atau ditolak. AWS DMS mendukung tindakan, sumber daya, dan kunci kondisi tertentu. Untuk mempelajari semua elemen yang Anda gunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*.

### Tindakan
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen `Action` dari kebijakan JSON menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam sebuah kebijakan. Sertakan tindakan dalam kebijakan untuk memberikan izin untuk melakukan operasi terkait.

Tindakan kebijakan AWS DMS menggunakan awalan berikut sebelum tindakan:`dms:`. Misalnya, untuk memberikan izin kepada seseorang untuk membuat tugas replikasi dengan operasi AWS DMS `CreateReplicationTask` API, Anda menyertakan `dms:CreateReplicationTask` tindakan tersebut dalam kebijakan mereka. Pernyataan kebijakan harus mencakup salah satu `Action` atau `NotAction` elemen. AWS DMS mendefinisikan serangkaian tindakannya sendiri yang menggambarkan tugas yang dapat Anda lakukan dengan layanan ini.

Untuk menentukan beberapa tindakan dalam satu pernyataan, pisahkan tindakan dengan koma seperti berikut:

```
"Action": [
      "dms:action1",
      "dms:action2"
```

Anda juga dapat menentukan beberapa tindakan menggunakan wildcard (\$1). Misalnya, untuk menentukan semua tindakan yang dimulai dengan kata `Describe`, sertakan tindakan berikut.

```
"Action": "dms:Describe*"
```



Untuk melihat daftar tindakan, lihat AWS DMS [Tindakan yang Ditentukan oleh AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions) dalam *Panduan Pengguna IAM*.

### Sumber daya
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, di mana **utama** dapat melakukan **tindakan** pada **sumber daya**, dan dalam **kondisi apa**.

Elemen kebijakan JSON `Resource` menentukan objek yang menjadi target penerapan tindakan. Praktik terbaiknya, tentukan sumber daya menggunakan [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Untuk tindakan yang tidak mendukung izin di tingkat sumber daya, gunakan wildcard (\$1) untuk menunjukkan bahwa pernyataan tersebut berlaku untuk semua sumber daya.

```
"Resource": "*"
```



AWS DMS bekerja dengan sumber daya berikut:
+ Sertifikat
+ Titik akhir
+ Langganan acara
+ Instans replikasi
+ Grup (keamanan) subnet replikasi
+ Tugas replikasi

Sumber daya atau sumber daya yang AWS DMS dibutuhkan tergantung pada tindakan atau tindakan yang Anda panggil. Anda memerlukan kebijakan yang mengizinkan tindakan ini pada sumber daya atau sumber daya terkait yang ditentukan oleh sumber ARNs daya.

Misalnya, sumber daya AWS DMS titik akhir memiliki ARN berikut:

```
arn:${Partition}:dms:${Region}:${Account}:endpoint/${InstanceId}
```

Untuk informasi selengkapnya tentang format ARNs, lihat [Amazon Resource Names (ARNs) dan ruang nama AWS layanan](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

Misalnya, untuk menentukan instans titik akhir `1A2B3C4D5E6F7G8H9I0J1K2L3M` untuk wilayah `us-east-2` dalam pernyataan Anda, gunakan ARN berikut.

```
"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/1A2B3C4D5E6F7G8H9I0J1K2L3M"
```

Untuk menentukan semua titik akhir milik akun tertentu, gunakan wildcard (\$1).

```
"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/*"
```

Beberapa AWS DMS tindakan, seperti untuk membuat sumber daya, tidak dapat dilakukan pada sumber daya tertentu. Dalam kasus tersebut, Anda harus menggunakan wildcard (\$1).

```
"Resource": "*"
```

Beberapa tindakan AWS DMS API melibatkan banyak sumber daya. Misalnya, `StartReplicationTask` memulai dan menghubungkan tugas replikasi ke dua sumber daya titik akhir basis data, yakni sumber dan target, sehingga pengguna IAM harus memiliki izin untuk membaca titik akhir sumber dan menulis ke titik akhir target. Untuk menentukan beberapa sumber daya dalam satu pernyataan, pisahkan ARNs dengan koma. 

```
"Resource": [
      "resource1",
      "resource2" ]
```

Untuk informasi selengkapnya tentang mengontrol akses ke AWS DMS sumber daya menggunakan kebijakan, lihat[Menggunakan nama sumber daya untuk mengontrol akses](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.ResourceName). Untuk melihat daftar jenis sumber daya dan jenis AWS DMS sumber daya ARNs, lihat [Sumber Daya yang Ditentukan oleh AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-resources-for-iam-policies) dalam *Panduan Pengguna IAM*. Untuk mempelajari tindakan mana yang dapat menentukan ARN setiap sumber daya, lihat [Tindakan yang Ditentukan oleh AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions).

### Kunci syarat
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Administrator dapat menggunakan kebijakan AWS JSON untuk menentukan siapa yang memiliki akses ke apa. Yaitu, **principal** dapat melakukan **tindakan** pada suatu **sumber daya**, dan dalam suatu **syarat**.

Elemen `Condition` menentukan ketika pernyataan dieksekusi berdasarkan kriteria yang ditetapkan. Anda dapat membuat ekspresi bersyarat yang menggunakan [operator kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), misalnya sama dengan atau kurang dari, untuk mencocokkan kondisi dalam kebijakan dengan nilai-nilai yang diminta. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.

AWS DMS mendefinisikan kumpulan kunci kondisinya sendiri dan juga mendukung penggunaan beberapa kunci kondisi global. Untuk melihat semua kunci kondisi AWS global, lihat [kunci konteks kondisi AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di *Panduan Pengguna IAM*.



AWS DMS mendefinisikan satu set tag standar yang dapat Anda gunakan dalam kunci kondisi dan juga memungkinkan Anda menentukan tag kustom Anda sendiri. Untuk informasi selengkapnya, lihat [Menggunakan tag untuk mengontrol akses](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.Tags).

Untuk melihat daftar kunci AWS DMS kondisi, lihat [Condition Keys untuk AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-policy-keys) di *Panduan Pengguna IAM*. Untuk mempelajari tindakan dan sumber daya di mana Anda dapat gunakan kunci kondisi, lihat [Tindakan yang Ditentukan oleh AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions) dan [Sumber Daya yang Ditentukan oleh AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-resources-for-iam-policies).

### Contoh
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Untuk melihat contoh kebijakan AWS DMS berbasis identitas, lihat. [AWS Database Migration Service contoh kebijakan berbasis identitas](security_iam_id-based-policy-examples.md)

## AWS DMS kebijakan berbasis sumber daya
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang menentukan tindakan apa yang dapat dilakukan oleh prinsipal tertentu pada AWS DMS sumber daya tertentu dan dalam kondisi apa. AWS DMS mendukung kebijakan izin berbasis sumber daya untuk kunci AWS KMS enkripsi yang Anda buat untuk mengenkripsi data yang dimigrasi ke titik akhir target yang didukung. Titik akhir target yang didukung termasuk Amazon Redshift dan Amazon S3. Dengan menggunakan kebijakan berbasis sumber daya, Anda dapat memberikan izin untuk menggunakan kunci enkripsi ini ke akun lain untuk setiap titik akhir target.

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan seluruh akun atau entitas IAM di akun lain sebagai [prinsipal dalam kebijakan berbasis sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). Menambahkan principal akun silang ke kebijakan berbasis sumber daya hanya setengah dari membangun hubungan kepercayaan. Ketika prinsipal dan sumber daya berada di AWS akun yang berbeda, Anda juga harus memberikan izin entitas utama untuk mengakses sumber daya. Berikan izin dengan melampirkan kebijakan berbasis identitas ke entitas tersebut. Namun, jika kebijakan berbasis sumber daya memberikan akses ke prinsipal dalam akun yang sama, tidak diperlukan kebijakan berbasis identitas tambahan. Untuk informasi selengkapnya, lihat [Bagaimana peran IAM berbeda dari kebijakan berbasis sumber daya ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)dalam *Panduan Pengguna IAM*.

 AWS DMS Layanan ini hanya mendukung satu jenis kebijakan berbasis sumber daya yang disebut *kebijakan kunci*, yang dilampirkan ke kunci enkripsi. AWS KMS Kebijakan ini menentukan entitas prinsipal mana (akun, pengguna, peran, dan pengguna gabungan) yang dapat mengenkripsi data yang dimigrasikan di titik akhir target yang didukung.

Untuk mempelajari cara melampirkan kebijakan berbasis sumber daya ke kunci enkripsi yang Anda buat untuk titik akhir target yang didukung, lihat [Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) dan [Membuat AWS KMS kunci untuk mengenkripsi objek target Amazon S3](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys).

### Contoh
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>



Untuk contoh kebijakan AWS DMS berbasis sumber daya, lihat. [Contoh kebijakan berbasis sumber daya untuk AWS KMS](security_iam_resource-based-policy-examples.md)

## Otorisasi berdasarkan tag AWS DMS
<a name="security_iam_service-with-iam-tags"></a>

Anda dapat melampirkan tag ke AWS DMS sumber daya atau meneruskan tag dalam permintaan AWS DMS. Untuk mengontrol akses berdasarkan tag, Anda memberikan informasi tag dalam [elemen kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) kebijakan menggunakan`dms:ResourceTag/key-name`,`aws:RequestTag/key-name`, atau kunci `aws:TagKeys` kondisi. AWS DMS mendefinisikan satu set tag standar yang dapat Anda gunakan dalam kunci kondisi dan juga memungkinkan Anda untuk menentukan tag kustom Anda sendiri. Untuk informasi selengkapnya, lihat [Menggunakan tag untuk mengontrol akses](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.Tags).

Untuk melihat contoh kebijakan berbasis identitas yang membatasi akses ke sumber daya berdasarkan tag, lihat [Mengakses AWS DMS sumber daya berdasarkan tag](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-resources-tags).

## Peran IAM untuk AWS DMS
<a name="security_iam_service-with-iam-roles"></a>

[Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas dalam AWS akun Anda yang memiliki izin tertentu.

### Menggunakan kredensi sementara dengan AWS DMS
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Anda dapat menggunakan kredensial sementara untuk masuk ke federasi, mengasumsikan peran IAM, atau mengasumsikan peran lintas akun. Anda mendapatkan kredensil keamanan sementara dengan memanggil operasi AWS STS API seperti [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 

AWS DMS mendukung menggunakan kredensil sementara. 

### Peran terkait layanan
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[Peran terkait AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) memungkinkan layanan mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran terkait layanan muncul di akun IAM Anda dan dimiliki oleh layanan tersebut. Administrator IAM dapat melihat tetapi tidak dapat mengedit izin untuk peran terkait layanan.

Untuk detail tentang membuat atau mengelola peran AWS DMS terkait layanan, lihat. [Menggunakan Peran Terkait Layanan](using-service-linked-roles.md)

### Peran layanan
<a name="security_iam_service-with-iam-roles-service"></a>

Fitur ini memungkinkan layanan untuk menerima [peran layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) atas nama Anda. Peran ini mengizinkan layanan untuk mengakses sumber daya di layanan lain untuk menyelesaikan tindakan atas nama Anda. Peran layanan muncul di akun IAM Anda dan dimiliki oleh akun tersebut. Ini berarti administrator IAM dapat mengubah izin untuk peran ini. Namun, melakukan hal itu dapat merusak fungsionalitas layanan.

AWS DMS mendukung dua jenis peran layanan yang harus Anda buat untuk menggunakan sumber atau titik akhir target tertentu:
+ Peran dengan izin untuk memungkinkan akses AWS DMS ke sumber dan titik akhir target berikut (atau sumber dayanya):
  + Amazon DynamoDB sebagai target — Untuk informasi lebih lanjut lihat [Prasyarat untuk menggunakan DynamoDB sebagai target AWS Database Migration Service](CHAP_Target.DynamoDB.md#CHAP_Target.DynamoDB.Prerequisites).
  + OpenSearch sebagai target — Untuk informasi lebih lanjut lihat[Prasyarat untuk menggunakan OpenSearch Layanan Amazon sebagai target untuk AWS Database Migration Service](CHAP_Target.Elasticsearch.md#CHAP_Target.Elasticsearch.Prerequisites).
  + Amazon Kinesis sebagai target – Untuk informasi lebih lanjut lihat [Prasyarat untuk menggunakan aliran data Kinesis sebagai target AWS Database Migration Service](CHAP_Target.Kinesis.md#CHAP_Target.Kinesis.Prerequisites).
  + Amazon Redshift sebagai target – Anda perlu membuat peran tertentu hanya untuk menciptakan kunci enkripsi KMS kustom untuk mengenkripsi data target atau untuk menentukan bucket S3 kustom untuk memegang penyimpanan tugas menengah. Untuk informasi lebih lanjut, lihat [Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) atau [Pengaturan bucket Amazon S3](CHAP_Target.Redshift.md#CHAP_Target.Redshift.EndpointSettings.S3Buckets).
  + Amazon S3 sebagai sumber atau sebagai target – Untuk informasi lebih lanjut, lihat [Prasyarat saat menggunakan Amazon S3 sebagai sumber AWS DMS](CHAP_Source.S3.md#CHAP_Source.S3.Prerequisites) atau [Prasyarat penggunaan Amazon S3 sebagai target](CHAP_Target.S3.md#CHAP_Target.S3.Prerequisites).

  Misalnya, untuk membaca data dari titik akhir sumber S3 atau untuk mendorong data ke titik akhir target S3, Anda harus membuat peran layanan sebagai prasyarat untuk mengakses S3 untuk masing-masing operasi titik akhir ini. 
+ Peran dengan izin yang diperlukan untuk menggunakan konsol AWS DMS, API AWS CLI dan AWS DMS — Dua peran IAM yang perlu Anda buat adalah dan. `dms-vpc-role` `dms-cloudwatch-logs-role` Jika Anda menggunakan Amazon Redshift sebagai database target, Anda juga harus membuat dan menambahkan peran IAM `dms-access-for-endpoint` ke akun Anda. AWS Untuk informasi selengkapnya, lihat [Membuat peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

### Memilih peran IAM di AWS DMS
<a name="security_iam_service-with-iam-roles-choose"></a>

Jika Anda menggunakan konsol AWS DMS, AWS CLI atau AWS DMS API untuk migrasi database, Anda harus menambahkan peran IAM tertentu ke AWS akun Anda sebelum dapat menggunakan fitur DMS. AWS Dua dari peran tersebut adalah `dms-vpc-role` dan `dms-cloudwatch-logs-role`. Jika Anda menggunakan Amazon Redshift sebagai database target, Anda juga harus menambahkan peran IAM `dms-access-for-endpoint` ke akun Anda. AWS Untuk informasi selengkapnya, lihat [Membuat peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

## Manajemen identitas dan akses untuk DMS Fleet Advisor
<a name="fa-security-iam"></a>

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak, dan juga kondisi di mana tindakan diizinkan atau ditolak. DMS Fleet Advisor mendukung tindakan, sumber daya, dan kunci kondisi tertentu. Untuk mempelajari semua elemen yang Anda gunakan dalam kebijakan JSON, lihat [Referensi elemen kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dalam *Panduan Pengguna IAM*. 

DMS Fleet Advisor menggunakan peran IAM untuk mengakses Amazon Simple Storage Service. [Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah entitas dalam AWS akun Anda yang memiliki izin tertentu. Untuk informasi selengkapnya, lihat [Buat sumber daya IAM](fa-resources.md#fa-resources-iam). 

# AWS Database Migration Service contoh kebijakan berbasis identitas
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan peran IAM tidak memiliki izin untuk membuat atau memodifikasi sumber daya AWS DMS . Mereka juga tidak dapat melakukan tugas menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS API. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada pengguna dan peran untuk melakukan operasi API tertentu pada sumber daya yang diperlukan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna IAM atau grup yang memerlukan izin tersebut.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan di tab JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Praktik terbaik kebijakan](#security_iam_service-with-iam-policy-best-practices)
+ [Menggunakan AWS DMS konsol](#security_iam_id-based-policy-examples-console)
+ [Mengizinkan pengguna melihat izin mereka sendiri](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Mengakses satu bucket Amazon S3](#security_iam_id-based-policy-examples-access-one-bucket)
+ [Mengakses AWS DMS sumber daya berdasarkan tag](#security_iam_id-based-policy-examples-access-resources-tags)

## Praktik terbaik kebijakan
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus AWS DMS sumber daya di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
+ **Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin** kepada pengguna dan beban kerja Anda, gunakan *kebijakan AWS terkelola* yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Kebijakan yang dikelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) atau [Kebijakan yang dikelola AWS untuk fungsi tugas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dalam *Panduan Pengguna IAM*.
+ **Menerapkan izin dengan hak akses paling rendah** – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai *izin dengan hak akses paling rendah*. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat [Kebijakan dan izin dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut** – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat [Elemen kebijakan JSON IAM: Kondisi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.
+ **Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional** – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat [Validasi kebijakan dengan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dalam *Panduan Pengguna IAM*.
+ **Memerlukan otentikasi multi-faktor (MFA)** - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat [Amankan akses API dengan MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dalam *Panduan Pengguna IAM*.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dalam *Panduan Pengguna IAM*.

## Menggunakan AWS DMS konsol
<a name="security_iam_id-based-policy-examples-console"></a>

Kebijakan berikut memberi Anda akses ke AWS DMS, termasuk konsol AWS DMS, dan juga menentukan izin untuk tindakan tertentu yang diperlukan dari layanan Amazon lainnya seperti Amazon EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
     "Statement": [
    {
        "Effect": "Allow",
        "Action": "dms:*",
        "Resource": "arn:aws:dms:*:123456789012:*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "kms:ListAliases",
            "kms:DescribeKey"
        ],
        "Resource": "arn:aws:kms:*:123456789012:key/*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "iam:GetRole",
            "iam:CreateRole",
            "iam:AttachRolePolicy"
        ],
        "Resource": "arn:aws:iam::123456789012:role/*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::123456789012:role/*",
        "Condition": {
            "StringEquals": {
                "iam:PassedToService": "dms.amazonaws.com"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeVpcs",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups",
            "ec2:ModifyNetworkInterfaceAttribute",
            "ec2:CreateNetworkInterface",
            "ec2:DeleteNetworkInterface"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "cloudwatch:Get*",
            "cloudwatch:List*"
        ],
    "Resource": "*"
    },
    {
    "Effect": "Allow",
    "Action": [
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:FilterLogEvents",
        "logs:GetLogEvents"
        ],
    "Resource": "arn:aws:logs:*:123456789012:*"
    }
   ]
}
```

------

Perincian izin ini dapat membantu Anda lebih memahami mengapa masing-masing izin diperlukan untuk menggunakan konsol tersebut.

Bagian berikut ini diperlukan untuk mengizinkan pengguna untuk membuat daftar kunci AWS KMS yang tersedia dan alias untuk ditampilkan di konsol. Entri ini tidak diperlukan jika Anda mengetahui Amazon Resource Name (ARN) untuk kunci KMS dan Anda hanya menggunakan AWS Command Line Interface (AWS CLI).

```
{
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases", 
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian berikut ini diperlukan untuk jenis titik akhir tertentu yang memerlukan ARN peran untuk diteruskan dengan titik akhir. Selain itu, jika AWS DMS peran yang diperlukan tidak dibuat sebelumnya, AWS DMS konsol memiliki kemampuan untuk membuat peran. Jika semua peran dikonfigurasi sebelumnya, yang diperlukan adalah `iam:GetRole` dan `iam:PassRole`. Untuk informasi lebih lanjut tentang peran, lihat [Membuat peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

```
{
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian berikut diperlukan karena AWS DMS perlu membuat instans Amazon EC2 dan mengonfigurasi jaringan untuk instance replikasi yang dibuat. Sumber daya ini ada di akun pelanggan, sehingga kemampuan untuk melakukan tindakan ini atas nama pelanggan diperlukan.

```
{
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian berikut diperlukan untuk mengizinkan pengguna untuk dapat melihat metrik instans replikasi.

```
{
            "Effect": "Allow",
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian ini diperlukan untuk mengizinkan pengguna untuk melihat log replikasi.

```
{
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Jika Anda menggunakan konsol AWS DMS, AWS Command Line Interface (AWS CLI) atau AWS DMS API untuk migrasi, Anda perlu menambahkan beberapa peran ke akun Anda. Untuk informasi lebih lanjut tentang menambahkan peran ini, lihat [Membuat peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

Untuk informasi selengkapnya tentang persyaratan penggunaan kebijakan ini untuk mengakses AWS DMS, lihat[Izin IAM diperlukan untuk menggunakan AWS DMS](security-iam.md#CHAP_Security.IAMPermissions).

## Mengizinkan pengguna melihat izin mereka sendiri
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Mengakses satu bucket Amazon S3
<a name="security_iam_id-based-policy-examples-access-one-bucket"></a>

AWS DMS menggunakan bucket Amazon S3 sebagai penyimpanan perantara untuk migrasi database. Biasanya, AWS DMS mengelola bucket S3 default untuk tujuan ini. Namun, dalam kasus tertentu, terutama ketika Anda menggunakan AWS CLI atau AWS DMS API, AWS DMS memungkinkan Anda untuk menentukan bucket S3 Anda sendiri sebagai gantinya. Misalnya, Anda dapat menentukan bucket S3 Anda sendiri untuk memigrasi data ke titik akhir target Amazon Redshift. Dalam hal ini, Anda perlu membuat peran dengan izin berdasarkan kebijakan AWS-managed`AmazonDMSRedshiftS3Role`.

Contoh berikut menunjukkan sebuah versi kebijakan `AmazonDMSRedshiftS3Role`. Hal ini memungkinkan AWS DMS untuk memberikan pengguna IAM di AWS akun Anda akses ke salah satu bucket Amazon S3 Anda. Hal ini juga memungkinkan pengguna untuk menambahkan, memperbarui, dan menghapus objek.

Selain memberikan izin `s3:PutObject`, `s3:GetObject`, dan `s3:DeleteObject` bagi pengguna, kebijakan tersebut juga memberikan izin `s3:ListAllMyBuckets`, `s3:GetBucketLocation`, dan `s3:ListBucket`. Izin-izin tersebut adalah izin tambahan yang diperlukan oleh konsol tersebut. Izin lain memungkinkan AWS DMS mengelola siklus hidup bucket. Selain itu, tindakan `s3:GetObjectAcl` diperlukan untuk dapat menyalin objek.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:DeleteBucket",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:GetBucketAcl",
                "s3:PutBucketVersioning",
                "s3:GetBucketVersioning",
                "s3:PutLifecycleConfiguration",
                "s3:GetLifecycleConfiguration",
                "s3:DeleteBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::dms-*"
        }
    ]
}
```

------

Untuk informasi lebih lanjut tentang cara membuat peran berdasarkan kebijakan ini, lihat [Pengaturan bucket Amazon S3](CHAP_Target.Redshift.md#CHAP_Target.Redshift.EndpointSettings.S3Buckets).

## Mengakses AWS DMS sumber daya berdasarkan tag
<a name="security_iam_id-based-policy-examples-access-resources-tags"></a>

Anda dapat menggunakan syarat dalam kebijakan berbasis identitas Anda untuk mengontrol akses ke sumber daya AWS DMS berdasarkan tanda. Contoh ini menunjukkan cara membuat kebijakan yang memungkinkan akses ke semua titik akhir AWS DMS. Namun, izin diberikan hanya jika tag basis data titik akhir `Owner` memiliki nilai nama pengguna dari pengguna tersebut.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dms:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "dms:endpoint-tag/Owner": "${aws:username}"
        }
      }
    }
  ]
}
```

------

Anda dapat melampirkan kebijakan ini ke pengguna IAM di akun Anda. Jika pengguna bernama `richard-roe` mencoba mengakses AWS DMS titik akhir, database endpoint harus diberi tag `Owner=richard-roe` atau. `owner=richard-roe` Jika tidak, akses pengguna ini ditolak. Kunci tag kondisi `Owner` cocok dengan `Owner` dan `owner` karena nama kunci kondisi tidak terpengaruh huruf besar/kecil. Untuk informasi selengkapnya, lihat [Elemen kebijakan IAM JSON: Syarat](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dalam *Panduan Pengguna IAM*.

# Contoh kebijakan berbasis sumber daya untuk AWS KMS
<a name="security_iam_resource-based-policy-examples"></a>

AWS DMS memungkinkan Anda membuat kunci AWS KMS enkripsi khusus untuk mengenkripsi data titik akhir target yang didukung. Untuk mempelajari cara membuat dan melampirkan kebijakan kunci ke kunci enkripsi yang Anda buat untuk enkripsi data target yang didukung, lihat [Membuat dan menggunakan AWS KMS kunci untuk mengenkripsi data target Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) dan [Membuat AWS KMS kunci untuk mengenkripsi objek target Amazon S3](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys).

**Topics**
+ [Kebijakan untuk kunci AWS KMS enkripsi khusus untuk mengenkripsi data target Amazon Redshift](#security_iam_resource-based-policy-examples-custom-rs-key-policy)
+ [Kebijakan untuk kunci AWS KMS enkripsi khusus untuk mengenkripsi data target Amazon S3](#security_iam_resource-based-policy-examples-custom-s3-key-policy)

## Kebijakan untuk kunci AWS KMS enkripsi khusus untuk mengenkripsi data target Amazon Redshift
<a name="security_iam_resource-based-policy-examples-custom-rs-key-policy"></a>

Contoh berikut menunjukkan JSON untuk kebijakan kunci yang dibuat untuk kunci enkripsi AWS KMS yang Anda buat untuk mengenkripsi data target Amazon Redshift.

------
#### [ JSON ]

****  

```
{
  "Id": "key-consolepolicy-3",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:root"
        ]
      },
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "Allow access for Key Administrators",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/Admin"
        ]
      },
      "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Allow use of the key",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role"
        ]
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Allow attachment of persistent resources",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role"
        ]
      },
      "Action": [
        "kms:CreateGrant",
        "kms:ListGrants",
        "kms:RevokeGrant"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}
```

------

Di sini, Anda dapat melihat di mana kebijakan kunci mereferensikan peran untuk mengakses data titik akhir target Amazon Redshift yang Anda buat sebelum membuat kunci. Dalam contoh, yaitu `DMS-Redshift-endpoint-access-role`. Anda juga dapat melihat berbagai tindakan kunci yang diizinkan untuk prinsipal yang berbeda (pengguna dan peran). Misalnya, setiap pengguna dengan `DMS-Redshift-endpoint-access-role` dapat mengenkripsi, mendekripsi, dan mengenkripsi ulang data target. Pengguna tersebut juga dapat menghasilkan kunci data untuk ekspor untuk mengenkripsi data di luar. AWS KMS Mereka juga dapat mengembalikan informasi terperinci tentang AWS KMS kunci, seperti kunci yang baru saja Anda buat. Selain itu, pengguna semacam itu dapat mengelola lampiran sumber daya AWS , seperti titik akhir target.

## Kebijakan untuk kunci AWS KMS enkripsi khusus untuk mengenkripsi data target Amazon S3
<a name="security_iam_resource-based-policy-examples-custom-s3-key-policy"></a>

Contoh berikut menunjukkan JSON untuk kebijakan kunci yang dibuat untuk kunci enkripsi AWS KMS yang Anda buat untuk mengenkripsi data target Amazon S3.

------
#### [ JSON ]

****  

```
{
    "Id": "key-consolepolicy-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:root"
                ]
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/Admin"
                ]
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role"
                ]
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
```

------

Di sini, Anda dapat melihat di mana kebijakan kunci mereferensikan peran untuk mengakses data titik akhir target Amazon S3 yang Anda buat sebelum membuat kunci. Dalam contoh, yaitu `DMS-S3-endpoint-access-role`. Anda juga dapat melihat berbagai tindakan kunci yang diizinkan untuk prinsipal yang berbeda (pengguna dan peran). Misalnya, setiap pengguna dengan `DMS-S3-endpoint-access-role` dapat mengenkripsi, mendekripsi, dan mengenkripsi ulang data target. Pengguna tersebut juga dapat menghasilkan kunci data untuk ekspor untuk mengenkripsi data di luar. AWS KMS Mereka juga dapat mengembalikan informasi terperinci tentang AWS KMS kunci, seperti kunci yang baru saja Anda buat. Selain itu, pengguna semacam itu dapat mengelola lampiran sumber daya AWS , seperti titik akhir target.

# Menggunakan rahasia untuk mengakses titik AWS Database Migration Service akhir
<a name="security_iam_secretsmanager"></a>

Untuk AWS DMS, *rahasia* adalah kunci terenkripsi yang dapat Anda gunakan untuk mewakili sekumpulan kredensi pengguna untuk mengautentikasi, melalui *otentikasi rahasia*, koneksi database untuk sumber yang didukung atau titik akhir target. AWS DMS Untuk endpoint Oracle yang juga menggunakan Oracle Automatic Storage Management (ASM), AWS DMS memerlukan rahasia tambahan yang mewakili kredensi pengguna untuk mengakses Oracle ASM.

Anda dapat membuat rahasia atau rahasia yang AWS DMS memerlukan otentikasi rahasia menggunakan AWS Secrets Manager, layanan untuk membuat, menyimpan, dan mengambil kredensil dengan aman untuk mengakses aplikasi, layanan, dan sumber daya TI di cloud dan di lokasi. Ini termasuk dukungan untuk rotasi berkala otomatis dari nilai rahasia terenkripsi tanpa intervensi Anda, sehingga memberikan tingkat keamanan tambahan untuk kredensial Anda. Mengaktifkan rotasi nilai rahasia AWS Secrets Manager juga memastikan bahwa rotasi nilai rahasia ini terjadi tanpa efek apa pun pada migrasi database apa pun yang bergantung pada rahasia. Untuk mengautentikasi koneksi basis data titik akhir secara rahasia, buat rahasia yang identitas atau ARN-nya Anda tetapkan untuk `SecretsManagerSecretId`, yang Anda sertakan dalam pengaturan titik akhir Anda. Untuk mengautentikasi Oracle ASM sebagai bagian dari titik akhir Oracle secara rahasia, buat rahasia yang identitas atau ARN-nya Anda tetapkan untuk `SecretsManagerOracleAsmSecretId`, yang juga Anda sertakan dalam pengaturan titik akhir Anda.

**catatan**  
Anda tidak dapat menggunakan kredensi master yang dikelola oleh Amazon RDS Aurora. Kredensi ini tidak termasuk informasi host atau port, yang AWS DMS perlu membuat koneksi. Sebaliknya, buat pengguna baru dan rahasia. Untuk informasi tentang membuat pengguna dan rahasia, lihat [Menggunakan Konsol Manajemen AWS untuk membuat peran akses rahasia dan rahasia](#security_iam_secretsmanager.console) berikut.

Untuk informasi selengkapnya AWS Secrets Manager, lihat [Apa itu AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) dalam *AWS Secrets Manager User Guide*.

AWS DMS mendukung otentikasi rahasia untuk database on-premise atau AWS-managed berikut pada sumber yang didukung dan titik akhir target:
+ Amazon DocumentDB
+ IBM Db2 LUW
+ Microsoft SQL Server
+ MongoDB
+ MySQL
+ Oracle
+ PostgreSQL
+ Amazon Redshift
+ SAP ASE

Untuk koneksi ke salah satu basis data ini, Anda memiliki pilihan untuk memasukkan salah satu dari rangkaian nilai berikut, tetapi tidak keduanya, sebagai bagian dari pengaturan titik akhir Anda:
+ Nilai teks yang jelas untuk mengautentikasi koneksi basis data menggunakan pengaturan `UserName`, `Password`, `ServerName`, dan `Port`. Untuk titik akhir Oracle yang juga menggunakan Oracle ASM, sertakan nilai teks yang jelas tambahan untuk mengautentikasi ASM menggunakan pengaturan `AsmUserName`, `AsmPassword`, dan `AsmServerName`.
+ Autentikasi rahasia menggunakan nilai untuk pengaturan `SecretsManagerSecretId` dan `SecretsManagerAccessRoleArn`. Untuk titik akhir Oracle yang menggunakan Oracle ASM, sertakan nilai tambahan untuk pengaturan `SecretsManagerOracleAsmSecretId` dan `SecretsManagerOracleAsmAccessRoleArn`. Nilai rahasia untuk pengaturan ini dapat mencakup berikut ini untuk: 
  + `SecretsManagerSecretId` – Amazon Resource Name (ARN) lengkap, ARN parsial, atau nama yang dikenal dari rahasia yang telah Anda buat untuk akses basis data titik akhir di AWS Secrets Manager.
  + `SecretsManagerAccessRoleArn`— ARN dari peran akses rahasia yang telah Anda buat di IAM untuk menyediakan AWS DMS akses ke `SecretsManagerSecretId` rahasia ini atas nama Anda.
  + `SecretsManagerOracleAsmSecretId` – Amazon Resource Name (ARN) lengkap, ARN parsial, atau nama yang dikenal dari rahasia yang telah Anda buat untuk akses Oracle ASM di AWS Secrets Manager.
  + `SecretsManagerOracleAsmAccessRoleArn` – ARN dari peran akses rahasia yang telah Anda buat di IAM untuk memberikan akses AWS DMS ke rahasia `SecretsManagerOracleAsmSecretId` atas nama Anda.
**catatan**  
Anda juga dapat menggunakan peran akses rahasia tunggal untuk menyediakan AWS DMS akses ke `SecretsManagerSecretId` rahasia dan `SecretsManagerOracleAsmSecretId` rahasia. Jika Anda membuat peran akses rahasia tunggal ini untuk kedua rahasia, pastikan bahwa Anda menetapkan ARN yang sama untuk peran akses ini untuk `SecretsManagerAccessRoleArn` dan `SecretsManagerOracleAsmAccessRoleArn`. Misalnya, jika peran akses rahasia Anda untuk kedua rahasia memiliki ARN yang ditugaskan untuk variabel, `ARN2xsecrets`, Anda dapat mengatur pengaturan ARN ini sebagai berikut:  

  ```
  SecretsManagerAccessRoleArn = ARN2xsecrets;
  SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;
  ```

  Untuk informasi lebih lanjut tentang nilai-nilai tersebut, lihat [Menggunakan Konsol Manajemen AWS untuk membuat peran akses rahasia dan rahasia](#security_iam_secretsmanager.console).

Setelah Anda telah membuat dan menentukan pengaturan rahasia dan titik akhir akses-peran rahasia yang diperlukan untuk titik akhir Anda, perbarui izin pada akun pengguna yang akan menjalankan permintaan `CreateEndpoint` atau `ModifyEndpoint` API dengan detail rahasia ini. Pastikan bahwa izin akun ini mencakup `IAM:GetRole` izin pada peran akses rahasia dan `SecretsManager:DescribeSecret` izin pada rahasia. AWS DMS memerlukan izin ini untuk memvalidasi peran akses dan rahasianya.

**Untuk memberikan dan memverifikasi izin pengguna yang diperlukan**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Identity and Access Management konsol di[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pilih **Pengguna**, lalu pilih **ID Pengguna** yang digunakan untuk membuat panggilan `CreateEndpoint` dan `ModifyEndpoint` API.

1. Dari tab **Izin**, pilih **\$1\$1 JSON**.

1. Pastikan pengguna memiliki izin yang ditampilkan berikut ini.

   ```
   {
   	"Statement": [{
   			"Effect": "Allow",
   			"Action": [
   				"iam:GetRole",
   				"iam:PassRole"
   			],
   			"Resource": "SECRET_ACCESS_ROLE_ARN"
   		},
   		{
   			"Effect": "Allow",
   			"Action": "secretsmanager:DescribeSecret",
   			"Resource": "SECRET_ARN"
   		}
   	]
   }
   ```

1. Jika pengguna tidak memiliki izin tersebut, tambahkan izin.

1. Jika Anda menggunakan IAM role untuk melakukan panggilan DMS API, ulangi langkah-langkah di atas untuk masing-masing peran.

1. Buka terminal dan gunakan AWS CLI untuk memvalidasi bahwa izin diberikan dengan benar dengan mengasumsikan Peran atau Pengguna yang digunakan di atas.

   1. Validasi izin pengguna pada SecretAccessRole menggunakan perintah IAM`get-role`.

      ```
      aws iam get-role --role-name ROLE_NAME
      ```

      Ganti *ROLE\$1NAME* dengan nama`SecretsManagerAccessRole`.

      Jika perintah mengembalikan pesan kesalahan, pastikan izin diberikan dengan benar.

   1. Memvalidasi izin pengguna pada rahasia menggunakan perintah Secrets Manager `describe-secret`.

      ```
      aws secretsmanager describe-secret --secret-id SECRET_NAME OR SECRET_ARN --region=REGION_NAME
      ```

      Pengguna bisa menjadi nama yang dikenal, ARN parsial atau ARN lengkap. Untuk informasi lebih lanjut, lihat [uraikan-rahasia](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html).

      Jika perintah mengembalikan pesan kesalahan, pastikan izin diberikan dengan benar.

## Menggunakan Konsol Manajemen AWS untuk membuat peran akses rahasia dan rahasia
<a name="security_iam_secretsmanager.console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk membuat rahasia untuk otentikasi titik akhir dan untuk membuat kebijakan dan peran AWS DMS untuk memungkinkan mengakses rahasia atas nama Anda.

**Untuk membuat rahasia menggunakan Konsol Manajemen AWS yang AWS DMS dapat digunakan untuk mengautentikasi database untuk sumber dan koneksi titik akhir target**

1. Masuk ke Konsol Manajemen AWS dan buka AWS Secrets Manager konsol di[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pilih **Simpan rahasia baru**.

1. Di bawah **Pilih tipe rahasia** pada halaman **Simpan rahasia baru**, pilih **Jenis rahasia lainnya**, lalu pilih **Plaintext**.
**catatan**  
Ini adalah satu-satunya tempat yang Anda butuhkan untuk memasukkan kredensial teks yang jelas untuk terhubung ke basis data titik akhir Anda mulai saat ini hingga seterusnya.

1. Di bidang **Plaintext**: 
   + Untuk rahasia yang identitasnya Anda tetapkan pada `SecretsManagerSecretId`, masukkan struktur JSON berikut ini.

     ```
     {
       "username": db_username,
       "password": db_user_password,
       "port": db_port_number,
       "host": db_server_name
     }
     ```
**catatan**  
Ini adalah daftar minimum anggota JSON yang diperlukan untuk mengautentikasi basis data titik akhir. Anda dapat menambahkan pengaturan titik akhir JSON tambahan sebagai anggota JSON dalam huruf kecil yang Anda inginkan. Namun, AWS DMS mengabaikan setiap anggota JSON tambahan untuk autentikasi titik akhir.

     Di sini, `db_username` adalah nama pengguna yang mengakses basis data , `db_user_password` adalah kata sandi dari pengguna basis data, `db_port_number` adalah nomor port untuk mengakses database, dan `db_server_name` adalah nama server basis data (alamat) di web, seperti dalam contoh berikut.

     ```
     {
       "username": "admin",
       "password": "some_password",
       "port": "8190",
       "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com"
     }
     ```
   + Untuk rahasia yang identitasnya Anda tetapkan pada `SecretsManagerOracleAsmSecretId`, masukkan struktur JSON berikut ini.

     ```
     {
       "asm_user": asm_username,
       "asm_password": asm_user_password,
       "asm_server": asm_server_name
     }
     ```
**catatan**  
Ini adalah daftar minimum anggota JSON yang diperlukan untuk mengautentikasi Oracle ASM untuk titik akhir Oracle. Daftar ini juga merupakan daftar lengkap yang dapat Anda tentukan berdasarkan pengaturan titik akhir Oracle ASM yang tersedia.

     Di sini, `asm_username` adalah nama pengguna yang mengakses Oracle ASM, `asm_user_password` adalah kata sandi pengguna Oracle ASM, dan `asm_server_name` adalah nama server (alamat) Oracle ASM di web, termasuk port, seperti dalam contoh berikut.

     ```
     { 
       "asm_user": "oracle_asm_user", 
       "asm_password": "oracle_asm_password",
       "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" 
     }
     ```

1. Pilih kunci AWS KMS enkripsi untuk mengenkripsi rahasia. Anda dapat menerima kunci enkripsi default yang dibuat untuk layanan Anda dengan AWS Secrets Manager atau memilih AWS KMS kunci yang Anda buat.

1. Tentukan nama untuk mereferensikan rahasia ini dan deskripsi opsional. Ini adalah nama yang dikenal yang Anda gunakan sebagai nilai untuk `SecretsManagerSecretId` atau `SecretsManagerOracleAsmSecretId`.

1. Jika Anda ingin mengaktifkan rotasi otomatis dalam rahasia, Anda perlu memilih atau membuat AWS Lambda fungsi dengan izin untuk memutar kredensil untuk rahasia seperti yang dijelaskan. Namun, sebelum mengatur rotasi otomatis untuk menggunakan fungsi Lambda Anda, pastikan bahwa pengaturan konfigurasi untuk fungsi tersebut menambahkan empat karakter berikut ke nilai variabel lingkungan `EXCLUDE_CHARACTERS`.

   ```
   ;.:+{}*&,%\
   ```

   AWS DMS tidak mengizinkan karakter ini dalam kata sandi yang digunakan untuk kredensil titik akhir. Mengonfigurasi fungsi Lambda Anda untuk mengecualikan karakter tersebut mencegah AWS Secrets Manager dari menghasilkan karakter tersebut sebagai bagian dari nilai kata sandi yang dirotasi. Setelah Anda mengatur rotasi otomatis untuk menggunakan fungsi Lambda Anda, AWS Secrets Manager segera putar rahasia untuk memvalidasi konfigurasi rahasia Anda.
**catatan**  
Tergantung pada konfigurasi mesin basis data Anda, basis data Anda mungkin tidak mengambil kredensial yang dirotasi. Dalam hal ini, Anda perlu memulai ulang tugas secara manual untuk menyegarkan kredensial.

1. Tinjau dan simpan rahasia Anda AWS Secrets Manager. Anda kemudian dapat mencari setiap rahasia dengan nama ramahnya AWS Secrets Manager, lalu mengambil ARN rahasia sebagai nilai `SecretsManagerSecretId` untuk `SecretsManagerOracleAsmSecretId` atau sesuai untuk mengautentikasi akses ke koneksi database endpoint Anda dan Oracle ASM (jika digunakan).

**Untuk membuat kebijakan akses rahasia dan peran untuk mengatur `SecretsManagerAccessRoleArn` atau`SecretsManagerOracleAsmAccessRoleArn`, yang memungkinkan akses AWS DMS AWS Secrets Manager untuk mengakses rahasia Anda yang sesuai**

1. Masuk ke Konsol Manajemen AWS dan buka konsol AWS Identity and Access Management (IAM) di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

1. Pilih **JSON** dan masukkan kebijakan berikut untuk mengaktifkan akses ke dan dekripsi rahasia Anda.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "secretsmanager:GetSecretValue",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   Di sini, `secret_arn` adalah ARN rahasia Anda, yang bisa Anda dapatkan dari `SecretsManagerSecretId` atau `SecretsManagerOracleAsmSecretId` yang sesuai, dan `kms_key_arn` adalah ARN kunci AWS KMS yang Anda gunakan untuk mengenkripsi rahasia Anda, seperti dalam contoh berikut.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**catatan**  
Jika Anda menggunakan kunci enkripsi default yang dibuat oleh AWS Secrets Manager, Anda tidak perlu menentukan AWS KMS izin untuk`kms_key_arn`.  
Jika Anda ingin kebijakan Anda menyediakan akses ke kedua rahasia, cukup tentukan objek sumber daya JSON tambahan untuk yang lain*secret\$1arn*.  
Jika rahasia Anda ada di akun yang berbeda, maka `SecretsManagerAccessRoleArn` peran tersebut memerlukan kebijakan tambahan untuk memverifikasi rahasia lintas akun. Untuk kasus penggunaan seperti itu, tambahkan tindakan `secretsmanager:DescribeSecret` ke kebijakan. Untuk detail selengkapnya tentang menyiapkan rahasia lintas akun, lihat Rahasia [Izin untuk AWS Secrets Manager untuk pengguna di akun lain](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html).

1. Tinjau dan buat kebijakan dengan nama yang dikenal dan deskripsi opsional.

1. Pilih **Peran**, lalu pilih **Buat peran**.

1. Pilih **layanan AWS ** sebagai jenis entitas terpercaya.

1. Pilih **DMS** dari daftar layanan sebagai layanan terpercaya, lalu pilih **Berikutnya: Izin**.

1. Cari dan lampirkan kebijakan yang Anda buat di langkah 4, lalu lanjutkan dengan menambahkan tag dan tinjau peran Anda. Pada titik ini, edit hubungan kepercayaan agar peran tersebut menggunakan prinsipal layanan AWS DMS regional Anda sebagai entitas tepercaya. Prinsipal ini memiliki format berikut.

   ```
   dms.region-name.amazonaws.com
   ```

   Di sini, *`region-name`* adalah nama wilayah Anda, seperti `us-east-1`. Dengan demikian, kepala layanan AWS DMS regional untuk wilayah ini mengikuti.

   ```
   dms.us-east-1.amazonaws.com
   ```

1. Setelah mengedit entitas terpercaya untuk peran tersebut, buat peran dengan nama yang dikenal dan deskripsi opsional. Anda sekarang dapat mencari peran baru Anda dengan nama yang dikenal di IAM, kemudian mengambil ARN peran sebagai nilai `SecretsManagerAccessRoleArn` atau `SecretsManagerOracleAsmAccessRoleArn` untuk mengautentikasi koneksi basis data titik akhir Anda.

**Untuk menggunakan secrets manager dengan instans replikasi di subnet privat**

1. Buat VPC endpoint secret manager dan perhatikan DNS untuk titik akhir. Untuk informasi lebih lanjut tentang cara membuat VPC endpoint secret manager, lihat [Menghubungkan ke Secrets Manager melalui VPC endpoint](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html#vpc-endpoint) []()di *Panduan Pengguna Secrets Manager AWS .*

1. Untuk aturan masuknya grup keamanan titik akhir VPC, izinkan lalu lintas HTTPS dari alamat ip pribadi instans replikasi atau grup keamanan yang dilampirkan ke instance replikasi.

1. Untuk aturan keluar grup keamanan instans replikasi, izinkan semua lalu lintas untuk tujuan `0.0.0.0/0`.

1. Atur atribut koneksi tambahan titik akhir, `secretsManagerEndpointOverride=secretsManager endpoint DNS` untuk memberikan DNS VPC endpoint secret manager, seperti yang ditunjukkan dalam contoh berikut.

   ```
   secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com
   ```

# Menggunakan peran terkait layanan untuk AWS DMS
<a name="using-service-linked-roles"></a>

AWS Database Migration Service menggunakan AWS Identity and Access Management peran [terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Peran terkait layanan adalah jenis unik peran IAM yang ditautkan langsung ke. AWS DMS Peran terkait layanan telah ditentukan sebelumnya oleh AWS DMS dan mencakup semua izin yang diperlukan layanan untuk memanggil AWS layanan lain atas nama Anda. 

Peran terkait layanan membuat pengaturan AWS DMS lebih mudah karena Anda tidak perlu menambahkan izin yang diperlukan secara manual. AWS DMS mendefinisikan izin peran terkait layanan, dan kecuali ditentukan lain, hanya AWS DMS dapat mengambil perannya. Izin yang ditentukan mencakup kebijakan kepercayaan dan kebijakan izin, dan kebijakan izin tersebut tidak dapat dilampirkan ke entitas IAM lainnya.

Anda dapat menghapus peran terkait layanan hanya setelah menghapus sumber daya yang terkait terlebih dahulu. Ini melindungi AWS DMS sumber daya Anda karena Anda tidak dapat secara tidak sengaja menghapus izin untuk mengakses sumber daya.

Untuk informasi tentang layanan lain yang mendukung peran terkait layanan, lihat [Layanan AWS yang Bekerja bersama IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dan mencari layanan yang memiliki **Ya** dalam **Peran Terkait Layanan**. Pilih **Ya** dengan sebuah tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.

**Peran terkait layanan untuk fitur AWS DMS **

**Topics**
+ [Peran terkait layanan untuk AWS DMS Penasihat Armada](slr-services-fa.md)
+ [Peran terkait layanan untuk AWS DMS](slr-services-sl.md)

# Peran terkait layanan untuk AWS DMS Penasihat Armada
<a name="slr-services-fa"></a>

AWS DMS Fleet Advisor menggunakan peran terkait layanan bernama **AWSServiceRoleForDMSFleetAdvisor — DMS Fleet Advisor** menggunakan peran terkait layanan ini untuk mengelola metrik Amazon. CloudWatch Peran terkait layanan ini dilampirkan ke kebijakan terkelola berikut ini: `AWSDMSFleetAdvisorServiceRolePolicy`. Untuk pembaruan kebijakan ini, lihat [AWS kebijakan terkelola untuk AWS Database Migration Service](security-iam-awsmanpol.md).

Peran terkait layanan AWSService RoleFor DMSFleet Penasihat mempercayai layanan berikut untuk mengambil peran:
+ `dms-fleet-advisor.amazonaws.com`

Kebijakan izin peran yang diberi nama AWSDMSFleet AdvisorServiceRolePolicy memungkinkan AWS DMS Fleet Advisor menyelesaikan tindakan berikut pada sumber daya yang ditentukan:
+ Tindakan: `cloudwatch:PutMetricData` pada `all AWS resources`

  Izin ini memungkinkan prinsipal untuk mempublikasikan titik data metrik ke Amazon. CloudWatch AWS DMS Fleet Advisor memerlukan izin ini untuk menampilkan bagan dengan metrik database dari. CloudWatch

Contoh kode berikut menunjukkan AWSDMSFleet AdvisorServiceRolePolicy kebijakan yang Anda gunakan untuk membuat AWSDMSFleet AdvisorServiceRolePolicy peran.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "AWS/DMS/FleetAdvisor"
            }
        }
    }
}
```

------

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM, seperti pengguna, grup, atau peran, untuk membuat, mengedit, atau menghapus peran terkait layanan. Untuk informasi selengkapnya, lihat [Izin peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dalam *Panduan Pengguna IAM*.

## Membuat peran terkait layanan untuk Fleet Advisor AWS DMS
<a name="create-slr-fa"></a>

Anda dapat menggunakan konsol IAM untuk membuat peran terkait layanan dengan kasus penggunaan **DMS — Fleet** Advisor. Di AWS CLI atau AWS API, buat peran terkait layanan dengan nama `dms-fleet-advisor.amazonaws.com` layanan. Untuk informasi selengkapnya, lihat [Membuat peran tertaut layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role) dalam *Panduan Pengguna IAM*. Jika Anda menghapus peran tertaut layanan ini, Anda dapat mengulang proses yang sama untuk membuat peran tersebut lagi.

Pastikan Anda membuat peran ini sebelum membuat pengumpul data. DMS Fleet Advisor menggunakan peran ini untuk menampilkan bagan dengan metrik database di. Konsol Manajemen AWS Untuk informasi selengkapnya, lihat [Membuat pengumpul data](fa-data-collectors-create.md).

## Mengedit peran terkait layanan untuk Fleet Advisor AWS DMS
<a name="edit-slr-fa"></a>

AWS DMS tidak mengizinkan Anda mengedit peran terkait layanan AWSService RoleFor DMSFleet Advisor. Setelah membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagai entitas mungkin mereferensikan peran tersebut. Namun, Anda dapat menyunting penjelasan peran menggunakan IAM. Untuk informasi selengkapnya, lihat [Mengedit peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dalam *Panduan Pengguna IAM*.

## Menghapus peran terkait layanan untuk Fleet Advisor AWS DMS
<a name="delete-slr-fa"></a>

Jika Anda tidak perlu lagi menggunakan fitur atau layanan yang memerlukan peran terkait layanan, sebaiknya hapus peran tersebut. Dengan demikian, Anda tidak memiliki entitas yang tidak digunakan yang tidak dipantau atau dipelihara secara aktif. Tetapi, Anda harus membersihkan sumber daya peran terkait layanan sebelum menghapusnya secara manual.

**catatan**  
Jika AWS DMS layanan menggunakan peran saat Anda mencoba menghapus sumber daya, maka penghapusan mungkin gagal. Jika hal itu terjadi, tunggu beberapa menit dan coba mengoperasikannya lagi.

**Untuk menghapus AWS DMS sumber daya yang digunakan oleh AWSService RoleFor DMSFleet Advisor**

1. Masuk ke Konsol Manajemen AWS dan buka AWS DMS konsol di [https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/).

1. **Di panel navigasi, pilih **Pengumpul data di bawah Temukan**.** Halaman **pengumpul data** terbuka.

1. Pilih pengumpul data Anda dan pilih **Hapus**.

1. Untuk mengonfirmasi penghapusan, masukkan nama pengumpul data di bidang input teks. Selanjutnya, pilih **Hapus**.

**penting**  
Saat Anda menghapus pengumpul data DMS, DMS Fleet Advisor menghapus semua database dari Inventaris yang Anda temukan menggunakan kolektor ini.

Setelah menghapus semua pengumpul data, Anda dapat menghapus peran terkait layanan.

**Untuk menghapus peran tertaut layanan secara manual menggunakan IAM**

Gunakan konsol IAM, the AWS CLI, atau AWS API untuk menghapus peran terkait layanan AWSService RoleFor DMSFleet Advisor. Untuk informasi selengkapnya, lihat [Menghapus peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) dalam *Panduan Pengguna IAM*.

## Wilayah yang didukung untuk peran terkait layanan AWS DMS Fleet Advisor
<a name="slr-regions-fa"></a>

AWS DMS Fleet Advisor mendukung penggunaan peran terkait layanan di semua wilayah tempat layanan tersedia. Lihat informasi yang lebih lengkap di [Didukung Wilayah AWS](CHAP_FleetAdvisor.md#CHAP_FleetAdvisor.SupportedRegions).

# Peran terkait layanan untuk AWS DMS
<a name="slr-services-sl"></a>

AWS DMS menggunakan peran terkait layanan bernama. **AWSServiceRoleForDMSServerless** AWS DMS menggunakan peran terkait layanan ini untuk membuat dan mengelola AWS DMS sumber daya atas nama Anda. AWS DMS menggunakan peran ini untuk manajemen instans otomatis sehingga Anda hanya perlu mengelola replikasi.

Peran tertaut layanan [AWSServiceRoleForDMSServerless](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) memercayai layanan berikut untuk mengambil peran tersebut:
+ `dms.amazonaws.com`

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM, seperti pengguna, grup, atau peran, untuk membuat, mengedit, atau menghapus peran terkait layanan. Untuk informasi selengkapnya, lihat [Izin peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dalam *Panduan Pengguna IAM*.

## Membuat peran terkait layanan untuk AWS DMS
<a name="create-slr-sl"></a>

Saat Anda memulai tugas replikasi, atau memulai penilaian premi, AWS DMS secara terprogram membuat peran terkait layanan. AWS DMS Anda dapat melihat peran ini di konsol IAM. Anda juga dapat memilih untuk membuat peran ini secara manual. Untuk membuat peran secara manual, gunakan konsol IAM untuk membuat peran terkait layanan dengan kasus penggunaan **DMS**. Di AWS CLI atau AWS API, buat peran terkait layanan menggunakan nama `dms.amazonaws.com` layanan. Untuk informasi selengkapnya, lihat [Membuat peran terkait layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role) Pengguna *IAM*. Jika Anda menghapus peran tertaut layanan ini, Anda dapat mengulang proses yang sama untuk membuat peran tersebut lagi.

**catatan**  
Jika Anda menghapus peran saat Anda memiliki replikasi di akun Anda, replikasi akan mengakibatkan kegagalan.

## Mengedit peran terkait layanan untuk AWS DMS
<a name="edit-slr-sl"></a>

AWS DMS tidak memungkinkan Anda untuk mengedit peran AWSService RoleFor DMSServerless terkait layanan. Setelah membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagai entitas mungkin mereferensikan peran tersebut. Namun, Anda dapat menyunting penjelasan peran menggunakan IAM. Untuk informasi selengkapnya, lihat [Mengedit peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dalam *Panduan Pengguna IAM*.

## Menghapus peran terkait layanan untuk AWS DMS
<a name="delete-slr-sl"></a>

Jika Anda tidak perlu lagi menggunakan fitur atau layanan yang memerlukan peran terkait layanan, sebaiknya hapus peran tersebut. Dengan demikian, Anda tidak memiliki entitas yang tidak digunakan yang tidak dipantau atau dipelihara secara aktif. Tetapi, Anda harus membersihkan sumber daya peran terkait layanan sebelum menghapusnya secara manual.

**catatan**  
Jika AWS DMS layanan menggunakan peran saat Anda mencoba menghapus sumber daya, maka penghapusan mungkin gagal. Jika hal itu terjadi, tunggu beberapa menit dan coba mengoperasikannya lagi.

**Untuk menghapus AWS DMS sumber daya yang digunakan oleh AWSService RoleFor DMSServerless**

1. Masuk ke Konsol Manajemen AWS dan buka AWS DMS konsol di [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2/).

1. ****Di panel navigasi, pilih **Replikasi tanpa server** di bawah Migrasikan data.**** Halaman **Tanpa Server terbuka**.

1. **Pilih replikasi tanpa server Anda dan pilih Hapus.**

1. Untuk mengonfirmasi penghapusan, masukkan nama replikasi tanpa server di bidang input teks. Selanjutnya, pilih **Hapus**.

Setelah menghapus semua replikasi tanpa server, Anda dapat menghapus peran terkait layanan.

**Untuk menghapus peran tertaut layanan secara manual menggunakan IAM**

Gunakan konsol IAM, the AWS CLI, atau AWS API untuk menghapus peran AWSService RoleFor DMSServerless terkait layanan. Untuk informasi selengkapnya, lihat [Menghapus peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) dalam *Panduan Pengguna IAM*.

## Wilayah yang didukung untuk AWS DMS peran terkait layanan
<a name="slr-regions-sl"></a>

AWS DMS mendukung penggunaan peran terkait layanan di semua wilayah tempat layanan tersedia. 

# Memecahkan masalah AWS Database Migration Service identitas dan akses
<a name="security_iam_troubleshoot"></a>

Gunakan informasi berikut untuk membantu Anda mendiagnosis dan memperbaiki masalah umum yang mungkin Anda temui saat bekerja dengan AWS DMS dan IAM.

**Topics**
+ [Saya tidak berwenang untuk melakukan tindakan di AWS DMS](#security_iam_troubleshoot-no-permissions)
+ [Saya tidak berwenang untuk melakukan iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Saya seorang administrator dan ingin mengizinkan orang lain mengakses AWS DMS](#security_iam_troubleshoot-admin-delegate)
+ [Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses AWS DMS sumber daya saya](#security_iam_troubleshoot-cross-account-access)

## Saya tidak berwenang untuk melakukan tindakan di AWS DMS
<a name="security_iam_troubleshoot-no-permissions"></a>

Jika Konsol Manajemen AWS memberitahu Anda bahwa Anda tidak berwenang untuk melakukan tindakan, maka Anda harus menghubungi administrator Anda untuk bantuan. Administrator Anda adalah orang yang memberikan nama pengguna dan kata sandi Anda.

Contoh kesalahan berikut terjadi ketika pengguna `mateojackson` IAM mencoba menggunakan konsol untuk melihat detail tentang titik akhir AWS DMS tetapi tidak memiliki izin. `dms: DescribeEndpoint`

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: dms:DescribeEndpoint on resource: my-postgresql-target
```

Dalam hal ini, Mateo meminta administratornya untuk memperbarui kebijakannya agar dia diizinkan mengakses sumber daya titik akhir `my-postgresql-target` menggunakan `dms:DescribeEndpoint` tindakan.

## Saya tidak berwenang untuk melakukan iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Jika Anda menerima kesalahan yang tidak diizinkan untuk melakukan `iam:PassRole` tindakan, kebijakan Anda harus diperbarui agar Anda dapat meneruskan peran AWS DMS.

Beberapa Layanan AWS memungkinkan Anda untuk meneruskan peran yang ada ke layanan tersebut alih-alih membuat peran layanan baru atau peran terkait layanan. Untuk melakukannya, Anda harus memiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi ketika pengguna IAM bernama `marymajor` mencoba menggunakan konsol tersebut untuk melakukan tindakan di AWS DMS. Namun, tindakan tersebut memerlukan layanan untuk mendapatkan izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebut pada layanan.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dalam kasus ini, kebijakan Mary harus diperbarui agar dia mendapatkan izin untuk melakukan tindakan `iam:PassRole` tersebut.

Jika Anda memerlukan bantuan, hubungi AWS administrator Anda. Administrator Anda adalah orang yang memberi Anda kredensial masuk.

## Saya seorang administrator dan ingin mengizinkan orang lain mengakses AWS DMS
<a name="security_iam_troubleshoot-admin-delegate"></a>

Untuk memungkinkan orang lain mengakses AWS DMS, Anda harus memberikan izin kepada orang atau aplikasi yang membutuhkan akses. Jika Anda menggunakan AWS IAM Identity Center untuk mengelola orang dan aplikasi, Anda menetapkan set izin kepada pengguna atau grup untuk menentukan tingkat akses mereka. Set izin secara otomatis membuat dan menetapkan kebijakan IAM ke peran IAM yang terkait dengan orang atau aplikasi. Untuk informasi selengkapnya, lihat [Set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) di *Panduan AWS IAM Identity Center Pengguna*.

Jika Anda tidak menggunakan IAM Identity Center, Anda harus membuat entitas IAM (pengguna atau peran) untuk orang atau aplikasi yang membutuhkan akses. Anda kemudian harus melampirkan kebijakan yang memberi mereka izin yang tepat di AWS DMS. Setelah izin diberikan, berikan kredensialnya kepada pengguna atau pengembang aplikasi. Mereka akan menggunakan kredensil tersebut untuk mengakses. AWS*Untuk mempelajari selengkapnya tentang membuat pengguna, grup, kebijakan, dan izin IAM, lihat [Identitas dan Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) [dan izin di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).*

## Saya ingin mengizinkan orang di luar AWS akun saya untuk mengakses AWS DMS sumber daya saya
<a name="security_iam_troubleshoot-cross-account-access"></a>

Anda dapat membuat peran yang dapat digunakan pengguna di akun lain atau orang-orang di luar organisasi Anda untuk mengakses sumber daya Anda. Anda dapat menentukan siapa saja yang dipercaya untuk mengambil peran tersebut. Untuk layanan yang mendukung kebijakan berbasis sumber daya atau daftar kontrol akses (ACLs), Anda dapat menggunakan kebijakan tersebut untuk memberi orang akses ke sumber daya Anda.

Untuk mempelajari selengkapnya, periksa referensi berikut:
+ Untuk mempelajari apakah AWS DMS mendukung fitur-fitur ini, lihat[Bagaimana AWS Database Migration Service bekerja dengan IAM](security_iam_service-with-iam.md).
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda di seluruh sumber daya Akun AWS yang Anda miliki, lihat [Menyediakan akses ke pengguna IAM di pengguna lain Akun AWS yang Anda miliki](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) di *Panduan Pengguna IAM*.
+ Untuk mempelajari cara menyediakan akses ke sumber daya Anda kepada pihak ketiga Akun AWS, lihat [Menyediakan akses yang Akun AWS dimiliki oleh pihak ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dalam *Panduan Pengguna IAM*.
+ Untuk mempelajari cara memberikan akses melalui federasi identitas, lihat [Menyediakan akses ke pengguna terautentikasi eksternal (federasi identitas)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dalam *Panduan Pengguna IAM*.
+ *Untuk mempelajari perbedaan antara menggunakan peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat [Akses sumber daya lintas akun di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html).*

## Izin IAM diperlukan untuk menggunakan AWS DMS
<a name="CHAP_Security.IAMPermissions"></a>

Anda menggunakan izin IAM tertentu dan IAM role untuk menggunakan AWS DMS. Jika Anda masuk sebagai pengguna IAM dan ingin menggunakannya AWS DMS, administrator akun Anda harus melampirkan kebijakan yang dibahas di bagian ini ke pengguna, grup, atau peran IAM yang Anda gunakan untuk menjalankan. AWS DMS Untuk informasi lebih lanjut tentang izin IAM, lihat [Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html). 

Kebijakan berikut memberi Anda akses ke AWS DMS, dan juga izin untuk tindakan tertentu yang diperlukan dari layanan Amazon lainnya seperti AWS KMS, IAM, Amazon EC2, dan Amazon. CloudWatch CloudWatchmemantau AWS DMS migrasi Anda secara real time dan mengumpulkan serta melacak metrik yang menunjukkan kemajuan migrasi Anda. Anda dapat menggunakan CloudWatch Log untuk men-debug masalah dengan tugas. 

**catatan**  
Anda selanjutnya dapat membatasi akses ke AWS DMS sumber daya menggunakan penandaan. Untuk informasi selengkapnya tentang membatasi akses ke AWS DMS sumber daya menggunakan penandaan, lihat. [Kontrol akses detail menggunakan nama sumber daya dan tag](CHAP_Security.FineGrainedAccess.md)

------
#### [ JSON ]

****  

```
{

  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dms:*",
      "Resource": "arn:aws:dms:*:123456789012:*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:ListAliases",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:*:123456789012:key/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": "arn:aws:iam::123456789012:role/*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "dms.amazonaws.com"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:Get*",
        "cloudwatch:List*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:FilterLogEvents",
        "logs:GetLogEvents"
      ],
      "Resource": "arn:aws:logs:*:123456789012:*"
    }
  ]
}
```

------

Perincian izin berikut ini dapat membantu Anda lebih memahami mengapa masing-masing izin diperlukan.

Bagian berikut diperlukan untuk memungkinkan pengguna memanggil operasi AWS DMS API.

```
{
            "Effect": "Allow",
            "Action": "dms:*",
            "Resource": "arn:aws:dms:region:account:resourcetype/id"
}
```

Bagian berikut diperlukan untuk memungkinkan pengguna mencantumkan AWS KMS kunci dan alias yang tersedia untuk ditampilkan di konsol. Entri ini tidak diperlukan jika Anda mengetahui Nama Sumber Daya Amazon (ARN) untuk kunci KMS dan Anda hanya menggunakan (). AWS Command Line Interface AWS CLI

```
{
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases", 
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian berikut ini diperlukan untuk jenis titik akhir tertentu yang memerlukan ARN IAM role untuk diteruskan dengan titik akhir. Selain itu, jika AWS DMS peran yang diperlukan tidak dibuat sebelumnya, AWS DMS konsol dapat membuat peran. Jika semua peran dikonfigurasi sebelumnya, yang diperlukan adalah `iam:GetRole` dan `iam:PassRole`. Untuk informasi lebih lanjut tentang peran, lihat [Membuat peran IAM untuk digunakan AWS DMS](#CHAP_Security.APIRole).

```
{
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian berikut diperlukan karena AWS DMS perlu membuat instans Amazon EC2 dan mengonfigurasi jaringan untuk instance replikasi yang dibuat. Sumber daya ini ada di akun pelanggan, sehingga kemampuan untuk melakukan tindakan ini atas nama pelanggan diperlukan.

```
{
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian berikut diperlukan untuk mengizinkan pengguna untuk dapat melihat metrik instans replikasi.

```
{
            "Effect": "Allow",
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Bagian ini diperlukan untuk mengizinkan pengguna untuk melihat log replikasi.

```
{
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

 Jika Anda menggunakan AWS DMS konsol, AWS Command Line Interface (AWS CLI) atau AWS DMS API untuk migrasi, Anda perlu menambahkan beberapa peran ke akun Anda. Untuk informasi lebih lanjut tentang menambahkan peran ini, lihat [Membuat peran IAM untuk digunakan AWS DMS](#CHAP_Security.APIRole).

## Membuat peran IAM untuk digunakan AWS DMS
<a name="CHAP_Security.APIRole"></a>

Jika Anda menggunakan AWS DMS konsol, AWS CLI atau AWS DMS API untuk migrasi database, Anda harus menambahkan tiga peran IAM ke AWS akun Anda sebelum dapat menggunakan fitur AWS DMS. Dua dari peran tersebut adalah `dms-vpc-role` dan `dms-cloudwatch-logs-role`. Jika Anda menggunakan Amazon Redshift sebagai database target, Anda juga harus menambahkan peran IAM `dms-access-for-endpoint` ke akun Anda. AWS 

Pembaruan untuk kebijakan terkelola otomatis. Jika Anda menggunakan kebijakan kustom dengan IAM role, pastikan untuk secara berkala memeriksa pembaruan untuk kebijakan terkelola dalam dokumentasi ini. Anda dapat melihat detail kebijakan terkelola dengan menggunakan kombinasi perintah `get-policy` dan `get-policy-version`.

Sebagai contoh, perintah `get-policy` mengambil informasi tentang IAM role yang ditentukan.

```
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
```

Informasi yang dikembalikan dari perintah adalah sebagai berikut.

```
{
    "Policy": {
        "PolicyName": "AmazonDMSVPCManagementRole",
        "PolicyId": "ANPAJHKIGMBQI4AEFFSYO",
        "Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole",
        "Path": "/service-role/",
        "DefaultVersionId": "v4",
        "AttachmentCount": 1,
        "PermissionsBoundaryUsageCount": 0,
        "IsAttachable": true,
        "Description": "Provides access to manage VPC settings for AWS managed customer configurations",
        "CreateDate": "2015-11-18T16:33:19+00:00",
        "UpdateDate": "2024-07-25T15:19:01+00:00",
        "Tags": []
    }
}
```

Perintah `get-policy-version` berikut mengambil informasi kebijakan IAM.

```
aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole --version-id v4
```

Informasi yang dikembalikan dari perintah adalah sebagai berikut.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "ExampleStatementID",
        "Effect": "Allow",
        "Action": [
            "ec2:CreateNetworkInterface",
            "ec2:DeleteNetworkInterface",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs",
            "ec2:ModifyNetworkInterfaceAttribute"
        ],
        "Resource": "*"
      }
    ]
}
```

------

Anda dapat menggunakan perintah yang sama untuk mendapatkan informasi tentang kebijakan terkelola `AmazonDMSCloudWatchLogsRole` dan `AmazonDMSRedshiftS3Role`.

Prosedur berikut membuat IAM role `dms-vpc-role`, `dms-cloudwatch-logs-role`, dan `dms-access-for-endpoint`.

**Untuk membuat peran dms-vpc-role IAM untuk digunakan dengan AWS CLI atau API AWS DMS**

1.  Membuat file JSON dengan kebijakan IAM berikut. Beri nama file JSON `dmsAssumeRolePolicyDocument.json`. 

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
           "Service": "dms.amazonaws.com"
        },
      "Action": "sts:AssumeRole"
      }
    ]
   }
   ```

------

    Buat peran menggunakan AWS CLI menggunakan perintah berikut.

   ```
   aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json                    
   ```

1.  Lampirkan kebijakan `AmazonDMSVPCManagementRole` ke `dms-vpc-role` menggunakan perintah berikut ini.

   ```
   aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole                    
   ```

**Untuk membuat peran dms-cloudwatch-logs-role IAM untuk digunakan dengan AWS CLI atau API AWS DMS**

1.  Membuat file JSON dengan kebijakan IAM berikut. Beri nama file JSON `dmsAssumeRolePolicyDocument2.json`. 

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
           "Service": "dms.amazonaws.com"
        },
      "Action": "sts:AssumeRole"
      }
    ]
   }
   ```

------

    Buat peran menggunakan AWS CLI menggunakan perintah berikut.

   ```
   aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json                    
   ```

1.  Lampirkan kebijakan `AmazonDMSCloudWatchLogsRole` ke `dms-cloudwatch-logs-role` menggunakan perintah berikut ini.

   ```
   aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole                    
   ```

Jika Anda menggunakan Amazon Redshift sebagai basis data target Anda, Anda harus membuat IAM role `dms-access-for-endpoint` untuk menyediakan akses ke Amazon S3.

**Untuk membuat peran dms-access-for-endpoint IAM untuk digunakan dengan Amazon Redshift sebagai database target**

1. Membuat file JSON dengan kebijakan IAM berikut. Beri nama file JSON `dmsAssumeRolePolicyDocument3.json`. 

------
#### [ JSON ]

****  

   ```
    {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "1",
         "Effect": "Allow",
         "Principal": {
           "Service": "dms.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       },
       {
         "Sid": "2",
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1.  Buat peran menggunakan AWS CLI menggunakan perintah berikut.

   ```
     aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document file://dmsAssumeRolePolicyDocument3.json                   
   ```

1.  Lampirkan kebijakan `AmazonDMSRedshiftS3Role` ke peran `dms-access-for-endpoint` menggunakan perintah berikut ini.

   ```
   aws iam attach-role-policy --role-name dms-access-for-endpoint \
       --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role
   ```

Anda sekarang harus memiliki kebijakan IAM untuk menggunakan AWS CLI atau AWS DMS API.

# Pencegahan "confused deputy" lintas layanan
<a name="cross-service-confused-deputy-prevention"></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. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (*layanan yang dipanggil*) memanggil layanan lain (*layanan yang dipanggil*). 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 principal layanan yang telah diberi 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 dalam kebijakan sumber daya untuk membatasi izin yang AWS Database Migration Service memberikan layanan lain ke sumber daya. Jika `aws:SourceArn` nilai tidak berisi ID akun, seperti nama instance AWS DMS replikasi (ARN), Anda harus menggunakan kedua kunci konteks kondisi global untuk membatasi izin. 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 mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

AWS DMS mendukung opsi wakil yang bingung mulai dari versi 3.4.7 dan lebih tinggi. Untuk informasi selengkapnya, lihat [AWS Catatan rilis Database Migration Service 3.4.7](CHAP_ReleaseNotes.md#CHAP_ReleaseNotes.DMS347). Jika instans replikasi Anda menggunakan AWS DMS versi 3.4.6 atau yang lebih rendah, pastikan Anda meningkatkan ke versi terbaru sebelum menetapkan opsi deputi yang membingungkan.

Cara paling efektif untuk melindungi dari masalah "confused deputy" adalah dengan menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN lengkap sumber daya. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks global `aws:SourceArn` dengan karakter wildcard (`*`) untuk bagian ARN yang tidak diketahui. Misalnya, `arn:aws:dms:*:123456789012:rep:*`. 

**Topics**
+ [Peran IAM untuk digunakan dengan AWS DMS API untuk pencegahan wakil yang membingungkan lintas layanan](#cross-service-confused-deputy-prevention-dms-api)
+ [Kebijakan IAM untuk menyimpan penilaian preflight di Amazon S3 untuk pencegahan wakil yang membingungkan lintas layanan](#cross-service-confused-deputy-prevention-s3)
+ [Menggunakan Amazon DynamoDB sebagai titik akhir target AWS DMS dengan pencegahan wakil kebingungan lintas layanan](#cross-service-confused-deputy-prevention-dynamodb)

## Peran IAM untuk digunakan dengan AWS DMS API untuk pencegahan wakil yang membingungkan lintas layanan
<a name="cross-service-confused-deputy-prevention-dms-api"></a>

Untuk menggunakan AWS CLI atau AWS DMS API untuk migrasi database, Anda harus menambahkan peran `dms-vpc-role` dan `dms-cloudwatch-logs-role` IAM ke AWS akun Anda sebelum dapat menggunakan fitur AWS DMS. Untuk informasi selengkapnya, lihat [Membuat peran IAM untuk digunakan AWS DMS](security-iam.md#CHAP_Security.APIRole).

Contoh berikut menunjukkan kebijakan untuk menggunakan `dms-vpc-role` peran dengan contoh `my-replication-instance` replikasi. Gunakan kebijakan ini untuk mencegah masalah wakil yang membingungkan.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Sid": "AllowDMSAssumeRole",
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "AWS:SourceAccount": "111122223333"
         },
         "ArnLike": {
             "aws:SourceArn": "arn:aws:dms:*:123456789012:*"
         }
      }
    }
  ]
}
```

------

## Kebijakan IAM untuk menyimpan penilaian preflight di Amazon S3 untuk pencegahan wakil yang membingungkan lintas layanan
<a name="cross-service-confused-deputy-prevention-s3"></a>

Untuk menyimpan hasil prasesmen di bucket S3, Anda membuat kebijakan IAM yang memungkinkan AWS DMS untuk mengelola objek di Amazon S3. Untuk informasi selengkapnya, lihat [Buat sumber daya IAM](CHAP_Tasks.AssessmentReport.Prerequisites.md#CHAP_Tasks.AssessmentReport.Prerequisites.IAM).

Contoh berikut menunjukkan kebijakan kepercayaan dengan kondisi wakil yang membingungkan yang ditetapkan pada peran IAM yang memungkinkan AWS DMS untuk mengakses semua tugas dan penilaian berjalan di bawah akun pengguna tertentu.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDMSAssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "111122223333"
        },
        "ArnLike": {
            "aws:SourceArn": [
                "arn:aws:dms:*:123456789012:assessment-run:*",
                "arn:aws:dms:*:123456789012:task:*"
          ]
        }
      }
    }
  ]
}
```

------

## Menggunakan Amazon DynamoDB sebagai titik akhir target AWS DMS dengan pencegahan wakil kebingungan lintas layanan
<a name="cross-service-confused-deputy-prevention-dynamodb"></a>

Untuk menggunakan Amazon DynamoDB sebagai titik akhir target untuk migrasi database, Anda harus membuat peran IAM yang AWS DMS memungkinkan untuk mengasumsikan dan memberikan akses ke tabel DynamoDB. Kemudian, gunakan peran ini saat Anda membuat titik akhir DynamoDB target di. AWS DMS Untuk informasi selengkapnya, lihat [Menggunakan Amazon DynamoDB sebagai target](CHAP_Target.DynamoDB.md).

Contoh berikut menunjukkan kebijakan kepercayaan dengan kondisi deputi bingung yang ditetapkan pada peran IAM yang memungkinkan semua AWS DMS titik akhir mengakses tabel DynamoDB.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDMSAssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {
      "StringEquals": {
          "AWS:SourceAccount": "111122223333"
        },
        "ArnLike": {
        "aws:SourceArn": [
            "arn:aws:dms:*:123456789012:assessment-run:*",
            "arn:aws:dms:*:123456789012:task:*"
            ]
         }
      }
    }
  ]
}
```

------

# AWS kebijakan terkelola untuk AWS Database Migration Service
<a name="security-iam-awsmanpol"></a>

**Topics**
+ [AWS kebijakan terkelola: DMSVPCManagement Peran Amazon](#security-iam-awsmanpol-AmazonDMSVPCManagementRole)
+ [AWS kebijakan terkelola: AWSDMSServerless ServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy)
+ [AWS kebijakan terkelola: Amazon DMSCloud WatchLogsRole](#security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole)
+ [AWS kebijakan terkelola: AWSDMSFleet AdvisorServiceRolePolicy](#security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy)
+ [AWS kebijakan terkelola: Amazon DMSRedshift S3Role](#security-iam-awsmanpol-AmazonDMSRedshiftS3Role)
+ [AWS DMS pembaruan kebijakan AWS terkelola](#security-iam-awsmanpol-updates)

## AWS kebijakan terkelola: DMSVPCManagement Peran Amazon
<a name="security-iam-awsmanpol-AmazonDMSVPCManagementRole"></a>

Kebijakan ini melekat pada `dms-vpc-role` peran, yang memungkinkan AWS DMS untuk melakukan tindakan atas nama Anda.

Kebijakan ini memberikan izin kontributor yang memungkinkan AWS DMS untuk mengelola sumber daya jaringan.

**Detail izin**

Kebijakan ini mencakup operasi berikut:
+ `ec2:CreateNetworkInterface`— AWS DMS membutuhkan izin ini untuk membuat antarmuka jaringan. Antarmuka ini penting untuk contoh AWS DMS replikasi untuk terhubung ke database sumber dan target.
+ `ec2:DeleteNetworkInterface`— AWS DMS membutuhkan izin ini untuk membersihkan antarmuka jaringan yang dibuat setelah mereka tidak lagi diperlukan. Ini membantu dalam manajemen sumber daya dan menghindari biaya yang tidak perlu.
+ `ec2:DescribeAvailabilityZones`— Izin ini memungkinkan AWS DMS untuk mengambil informasi tentang zona ketersediaan di suatu wilayah. AWS DMS menggunakan informasi ini untuk memastikan bahwa ia menyediakan sumber daya di zona yang benar untuk redundansi dan ketersediaan.
+ `ec2:DescribeDhcpOptions`— AWS DMS mengambil rincian set opsi DHCP untuk VPC yang ditentukan. Informasi ini diperlukan untuk mengkonfigurasi jaringan dengan benar untuk contoh replikasi.
+ `ec2:DescribeInternetGateways`— AWS DMS mungkin memerlukan izin ini untuk memahami gateway internet yang dikonfigurasi dalam VPC. Informasi ini sangat penting jika contoh replikasi atau database membutuhkan akses internet.
+ `ec2:DescribeNetworkInterfaces`— AWS DMS mengambil informasi tentang antarmuka jaringan yang ada dalam VPC. Informasi ini diperlukan AWS DMS untuk mengkonfigurasi antarmuka jaringan dengan benar dan memastikan konektivitas jaringan yang tepat untuk proses migrasi.
+ `ec2:DescribeSecurityGroups`Grup keamanan mengontrol lalu lintas masuk dan keluar ke instans dan sumber daya. AWS DMS perlu menjelaskan kelompok keamanan untuk mengkonfigurasi antarmuka jaringan dengan benar dan memastikan komunikasi yang tepat antara contoh replikasi dan database.
+ `ec2:DescribeSubnets`— Izin ini memungkinkan AWS DMS untuk membuat daftar subnet dalam VPC. AWS DMS menggunakan informasi ini untuk meluncurkan contoh replikasi di subnet yang sesuai, memastikan mereka memiliki konektivitas jaringan yang diperlukan.
+ `ec2:DescribeVpcs`— Menjelaskan VPCs sangat penting AWS DMS untuk memahami lingkungan jaringan tempat instance replikasi dan database berada. Ini termasuk mengetahui blok CIDR dan konfigurasi khusus VPC lainnya.
+ `ec2:ModifyNetworkInterfaceAttribute`— Izin ini diperlukan AWS DMS untuk memodifikasi atribut antarmuka jaringan yang dikelolanya. Ini dapat mencakup pengaturan penyesuaian untuk memastikan konektivitas dan keamanan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Sid": "Statement1",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface",
				"ec2:DeleteNetworkInterface",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeDhcpOptions",
				"ec2:DescribeInternetGateways",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeSubnets",
				"ec2:DescribeVpcs",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "*"
		}
    ]
}
```

------

## AWS kebijakan terkelola: AWSDMSServerless ServiceRolePolicy
<a name="security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy"></a>

Kebijakan ini melekat pada `AWSServiceRoleForDMSServerless` peran, yang memungkinkan AWS DMS untuk melakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihat [Peran terkait layanan untuk AWS DMS](slr-services-sl.md).

Kebijakan ini memberikan izin kontributor yang memungkinkan AWS DMS untuk mengelola sumber daya replikasi.

**Detail izin**

Kebijakan ini mencakup izin berikut.
+ **AWS DMS**— Memungkinkan kepala sekolah untuk berinteraksi dengan sumber daya. AWS DMS 
+ **Amazon S3** - Memungkinkan DMS membuat bucket S3 untuk menyimpan penilaian premi. Bucket S3 dibuat untuk satu pengguna per Wilayah dan kebijakan bucket membatasi akses hanya ke peran layanan layanan. 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "id0",
            "Effect": "Allow",
            "Action": [
                "dms:CreateReplicationInstance",
                "dms:CreateReplicationTask"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:req-tag/ResourceCreatedBy": "DMSServerless"
                }
            }
        },
        {
            "Sid": "id1",
            "Effect": "Allow",
            "Action": [
                "dms:DescribeReplicationInstances",
                "dms:DescribeReplicationTasks"
            ],
            "Resource": "*"
        },
        {
            "Sid": "id2",
            "Effect": "Allow",
            "Action": [
                "dms:StartReplicationTask",
                "dms:StopReplicationTask",
                "dms:ModifyReplicationTask",
                "dms:DeleteReplicationTask",
                "dms:ModifyReplicationInstance",
                "dms:DeleteReplicationInstance"
            ],
            "Resource": [
                "arn:aws:dms:*:*:rep:*",
                "arn:aws:dms:*:*:task:*"
            ],
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/ResourceCreatedBy": "DMSServerless"
                }
            }
        },
        {
            "Sid": "id3",
            "Effect": "Allow",
            "Action": [
                "dms:TestConnection",
                "dms:DeleteConnection"
            ],
            "Resource": [
                "arn:aws:dms:*:*:rep:*",
                "arn:aws:dms:*:*:endpoint:*"
            ]
        },
        {
            "Sid": "id4",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObjectTagging"
            ],
            "Resource": [
                "arn:aws:s3:::dms-serverless-premigration-results-*",
                "arn:aws:s3:::dms-premigration-results-*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "id5",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:CreateBucket"
            ],
            "Resource": [
                "arn:aws:s3:::dms-serverless-premigration-results-*",
                "arn:aws:s3:::dms-premigration-results-*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "id6",
            "Effect": "Allow",
            "Action": [
                "dms:StartReplicationTaskAssessmentRun"
            ],
            "Resource": [
                "arn:aws:dms:*:*:task:*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

## AWS kebijakan terkelola: Amazon DMSCloud WatchLogsRole
<a name="security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole"></a>

Kebijakan ini melekat pada `dms-cloudwatch-logs-role` peran, yang memungkinkan AWS DMS untuk melakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihat [Menggunakan peran terkait layanan untuk AWS DMS](using-service-linked-roles.md).

Kebijakan ini memberikan izin kontributor yang memungkinkan AWS DMS untuk mempublikasikan log replikasi ke log. CloudWatch 

**Detail izin**

Kebijakan ini mencakup izin berikut.




+ `logs`— Memungkinkan kepala sekolah untuk mempublikasikan log ke Log. CloudWatch Izin ini diperlukan agar AWS DMS dapat digunakan CloudWatch untuk menampilkan log replikasi.



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeOnAllLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "AllowDescribeOfAllLogStreamsOnDmsTasksLogGroup",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*"
            ]
        },
        {
            "Sid": "AllowCreationOfDmsLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:"
            ]
        },
        {
            "Sid": "AllowCreationOfDmsLogStream",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*:log-stream:dms-task-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:dms-serverless-*"
            ]
        },
        {
            "Sid": "AllowUploadOfLogEventsToDmsLogStream",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*:log-stream:dms-task-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:dms-serverless-*"
            ]
        }
    ]
}
```

------

## AWS kebijakan terkelola: AWSDMSFleet AdvisorServiceRolePolicy
<a name="security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy"></a>





Anda tidak dapat melampirkan AWSDMSFleet AdvisorServiceRolePolicy ke entitas IAM Anda. Kebijakan ini dilampirkan pada peran terkait layanan yang memungkinkan Penasihat AWS DMS Armada untuk melakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihat [Menggunakan peran terkait layanan untuk AWS DMS](using-service-linked-roles.md).



Kebijakan ini memberikan izin kontributor yang memungkinkan AWS DMS Fleet Advisor mempublikasikan metrik Amazon. CloudWatch 



**Detail izin**

Kebijakan ini mencakup izin berikut.




+ `cloudwatch`— Memungkinkan kepala sekolah untuk mempublikasikan titik data metrik ke Amazon. CloudWatch Izin ini diperlukan agar AWS DMS Fleet Advisor dapat digunakan CloudWatch untuk menampilkan bagan dengan metrik database.



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "AWS/DMS/FleetAdvisor"
            }
        }
    }
}
```

------

## AWS kebijakan terkelola: Amazon DMSRedshift S3Role
<a name="security-iam-awsmanpol-AmazonDMSRedshiftS3Role"></a>

Kebijakan ini memberikan izin yang memungkinkan AWS DMS untuk mengelola setelan S3 untuk titik akhir Redshift.

**Detail izin**

Kebijakan ini mencakup operasi berikut:
+ `s3:CreateBucket`- Memungkinkan DMS membuat bucket S3 dengan awalan “dms-”
+ `s3:ListBucket`- Memungkinkan DMS untuk daftar isi ember S3 dengan awalan “dms-”
+ `s3:DeleteBucket `- Memungkinkan DMS untuk menghapus ember S3 dengan awalan “dms-”
+ `s3:GetBucketLocation`- Memungkinkan DMS untuk mengambil Wilayah tempat bucket S3 berada
+ `s3:GetObject`- Memungkinkan DMS untuk mengambil objek dari ember S3 dengan awalan “dms-”
+ `s3:PutObject`- Memungkinkan DMS untuk menambahkan objek ke ember S3 dengan awalan “dms-”
+ `s3:DeleteObject`- Memungkinkan DMS untuk menghapus objek dari ember S3 dengan awalan “dms-”
+ `s3:GetObjectVersion`- Memungkinkan DMS untuk mengambil versi objek tertentu dalam bucket berversi
+ `s3:GetBucketPolicy`- Memungkinkan DMS untuk mengambil kebijakan bucket
+ `s3:PutBucketPolicy`- Memungkinkan DMS untuk membuat atau memperbarui kebijakan bucket
+ `s3:GetBucketAcl`- Memungkinkan DMS untuk mengambil daftar kontrol akses bucket () ACLs
+ `s3:PutBucketVersioning`- Memungkinkan DMS untuk mengaktifkan atau menangguhkan versi pada bucket
+ `s3:GetBucketVersioning`- Memungkinkan DMS untuk mengambil status pembuatan versi bucket
+ `s3:PutLifecycleConfiguration`- Memungkinkan DMS untuk membuat atau memperbarui aturan siklus hidup untuk bucket
+ `s3:GetLifecycleConfiguration`- Memungkinkan DMS untuk mengambil aturan siklus hidup yang dikonfigurasi untuk bucket
+ `s3:DeleteBucketPolicy`- Memungkinkan DMS untuk menghapus kebijakan bucket

Semua izin ini hanya berlaku untuk sumber daya dengan pola ARN: `arn:aws:s3:::dms-*`

**Dokumen kebijakan JSON**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:ListBucket", 
        "s3:DeleteBucket",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:GetObjectVersion",
        "s3:GetBucketPolicy",
        "s3:PutBucketPolicy",
        "s3:GetBucketAcl",
        "s3:PutBucketVersioning",
        "s3:GetBucketVersioning",
        "s3:PutLifecycleConfiguration",
        "s3:GetLifecycleConfiguration",
        "s3:DeleteBucketPolicy"
      ],
      "Resource": "arn:aws:s3:::dms-*"
    }
  ]
}
```

------





## AWS DMS pembaruan kebijakan AWS terkelola
<a name="security-iam-awsmanpol-updates"></a>



Lihat detail tentang pembaruan kebijakan AWS terkelola AWS DMS sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman Riwayat AWS DMS dokumen.




| Ubah | Deskripsi | Date | 
| --- | --- | --- | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy)— Ubah  |  AWS DMS diperbarui `AWSDMSServerlessServiceRolePolicy` untuk memungkinkan DMS membuat bucket S3 dan memasukkan hasil penilaian premi ke dalam bucket tersebut untuk tugas replikasi yang tidak terkait dengan DMS tanpa server.  | November 5, 2025 | 
|  [Peran terkait layanan untuk Tanpa Server - AWS DMS Ubah](slr-services-sl.md)  |  AWS DMS diperbarui `AWSDMSServerlessServiceRolePolicy` `dms:StartReplicationTaskAssessmentRun` untuk memungkinkan mendukung menjalankan penilaian premi. AWS DMS juga memperbarui peran terkait layanan tanpa server untuk membuat bucket S3 dan memasukkan hasil penilaian premi ke dalam bucket tersebut.  | Februari 14, 2025 | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy)— Ubah  |  AWS DMS ditambahkan `dms:ModifyReplicationTask` yang diperlukan oleh AWS DMS Serverless untuk memanggil `ModifyReplicationTask` operasi untuk memodifikasi tugas replikasi. AWS DMS ditambahkan `dms:ModifyReplicationInstance` yang diperlukan oleh AWS DMS Serverless untuk memanggil `ModifyReplicationInstance` operasi untuk memodifikasi contoh replikasi.  | Januari 17, 2025 | 
|  [DMSVPCManagementPeran Amazon](#security-iam-awsmanpol-AmazonDMSVPCManagementRole) - Ubah  |  AWS DMS ditambahkan `ec2:DescribeDhcpOptions` dan `ec2:DescribeNetworkInterfaces` operasi AWS DMS untuk memungkinkan mengelola pengaturan jaringan atas nama Anda.  | Juni 17, 2024 | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) – Kebijakan baru  |  AWS DMS menambahkan `AWSDMSServerlessServiceRolePolicy` peran AWS DMS untuk memungkinkan membuat dan mengelola layanan atas nama Anda, seperti menerbitkan CloudWatch metrik Amazon.  | 22 Mei 2023 | 
|  [Amazon DMSCloud WatchLogsRole](#security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole) - Ubah  |  AWS DMS menambahkan ARN untuk sumber daya tanpa server ke setiap izin yang diberikan, untuk memungkinkan mengunggah log replikasi dari konfigurasi AWS DMS replikasi tanpa server ke Log. CloudWatch   | 22 Mei 2023 | 
|  [AWSDMSFleetAdvisorServiceRolePolicy](#security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy) – Kebijakan baru  |  AWS DMS Fleet Advisor menambahkan kebijakan baru untuk memungkinkan penerbitan titik data metrik ke Amazon CloudWatch.  | 6 Maret 2023 | 
|  AWS DMS mulai melacak perubahan  |  AWS DMS mulai melacak perubahan untuk kebijakan AWS terkelolanya.  | 6 Maret 2023 | 