

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

# Mengkonfigurasi IAM
<a name="cdc-iam"></a>

**penting**  
Fitur ini disediakan sebagai AWS Pratinjau dan dapat berubah sewaktu-waktu. Untuk informasi selengkapnya, lihat bagian 2, Beta dan Pratinjau, di Ketentuan [AWS Layanan](https://aws.amazon.com/service-terms/). Untuk mempelajari lebih lanjut tentang harga untuk aliran CDC, lihat halaman harga [Aurora](https://aws.amazon.com/rds/aurora/dsql/pricing/) DSQL.  
Sebelum ketersediaan umum, kami akan menambahkan jenis operasi baru (`"op": "u"`untuk pembaruan) ke muatan aliran Anda. Untuk memastikan aplikasi Anda menangani perubahan ini tanpa modifikasi, perlakukan `op` nilai yang tidak dikenal sebagai peningkatan dengan menerapkan payload. `after` Lihat [Memahami catatan CDC](cdc-record-format.md) untuk detail.

Aliran CDC memerlukan dua set izin IAM yang terpisah:
+ **Izin pemanggil** - Prinsip IAM yang memanggil operasi API aliran CDC (`CreateStream`,, `GetStream``DeleteStream`,`ListStreams`) memerlukan izin untuk tindakan ini dan untuk. `iam:PassRole`
+ **Peran layanan — Peran** IAM yang diasumsikan Aurora DSQL saat runtime untuk menulis catatan CDC ke target Anda. Anda membuat peran ini, melampirkan kebijakan kepercayaan yang memungkinkan prinsipal layanan Aurora DSQL untuk menerapkannya, dan melampirkan kebijakan izin yang memberikan akses tulis ke target.

**catatan**  
Peran layanan CDC terpisah dari kebijakan berbasis sumber daya apa pun di cluster Aurora DSQL Anda. Kebijakan berbasis sumber daya klaster mengontrol prinsipal mana yang dapat terhubung dan menanyakan klaster. Kontrol peran layanan CDC yang menargetkan Aurora DSQL dapat menulis catatan CDC.

## Izin penelepon
<a name="cdc-iam-caller-permissions"></a>

Prinsip IAM yang memanggil operasi API aliran CDC memerlukan izin untuk tindakan yang relevan `dsql` dan. `iam:PassRole` `CreateStream`Operasi memerlukan `iam:PassRole` karena melewati peran layanan ARN ke Aurora DSQL. Berikut ini adalah contoh kebijakan.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DSQLStreamActions",
            "Effect": "Allow",
            "Action": [
                "dsql:CreateStream",
                "dsql:GetStream",
                "dsql:ListStreams",
                "dsql:DeleteStream"
            ],
            "Resource": [
                "arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/{{cluster-id}}",
                "arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/{{cluster-id}}/stream/*"
            ]
        },
        {
            "Sid": "PassServiceRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::{{your-account-id}}:role/{{dsql-cdc-role}}",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "dsql.amazonaws.com"
                }
            }
        }
    ]
}
```

`Resource`Elemen ini mencakup ARN cluster (diperlukan oleh `CreateStream` dan`ListStreams`) dan pola ARN aliran (diperlukan oleh dan). `GetStream` `DeleteStream`

Untuk daftar lengkap izin yang diperlukan untuk setiap operasi, lihat,, [CreateStream[GetStream[DeleteStream](https://docs.aws.amazon.com/aurora-dsql/latest/APIReference/API_DeleteStream.html)](https://docs.aws.amazon.com/aurora-dsql/latest/APIReference/API_GetStream.html)](https://docs.aws.amazon.com/aurora-dsql/latest/APIReference/API_CreateStream.html), dan [ListStreams](https://docs.aws.amazon.com/aurora-dsql/latest/APIReference/API_ListStreams.html)di Referensi API [Amazon Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/CHAP_api_reference.html).

## Peran layanan
<a name="cdc-iam-service-role"></a>

Peran layanan adalah peran IAM yang Aurora DSQL asumsikan untuk menulis catatan CDC ke target Anda. Anda membuat peran ini dan meneruskan ARN di `targetDefinition.kinesis.roleArn` bidang saat Anda menelepon. `CreateStream` Peran tersebut memerlukan kebijakan kepercayaan dan kebijakan izin.

## Kebijakan kepercayaan peran layanan
<a name="cdc-iam-trust-policy"></a>

Kebijakan kepercayaan harus memungkinkan prinsipal layanan Aurora DSQL untuk mengambil peran tersebut. Untuk melindungi dari serangan [wakil yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), gunakan tombol `aws:SourceAccount` dan `aws:SourceArn` kondisi.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DSQLAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": "dsql.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{your-account-id}}"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/{{cluster-id}}/stream/*"
                }
            }
        }
    ]
}
```

`aws:SourceArn`Kondisi membatasi peran ke aliran di bawah cluster tertentu. Anda harus menggunakan wildcard (`stream/*`) saat membuat aliran karena Aurora DSQL belum menetapkan pengenal aliran. Setelah Anda membuat aliran, Anda dapat mengencangkan kondisi ke aliran ARN (`arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/{{cluster-id}}/stream/{{stream-id}}`) yang tepat jika peran tersebut melayani satu aliran.

Untuk menggunakan peran dengan stream di klaster mana pun di akun Anda, gunakan wildcard yang lebih luas:. `arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/*/stream/*`

Untuk mempelajari lebih lanjut tentang pencegahan wakil yang membingungkan, lihat [Cross-service pencegahan wakil bingung](cross-service-confused-deputy-prevention.md) di panduan ini.

## Kebijakan izin peran layanan
<a name="cdc-iam-permissions-policy"></a>

Kebijakan izin memberikan akses peran layanan untuk menulis catatan ke aliran data Kinesis Anda. Kebijakan berikut mencakup izin dan izin penulisan Kinesis. AWS KMS `KMSAccess`Pernyataan ini hanya diperlukan jika aliran data Kinesis Anda menggunakan kunci yang dikelola AWS KMS pelanggan, tetapi Anda dapat memasukkannya terlebih dahulu sehingga menambahkan kunci yang dikelola pelanggan nanti tidak merusak aliran CDC Anda.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KinesisAccess",
            "Effect": "Allow",
            "Action": [
                "kinesis:PutRecord",
                "kinesis:PutRecords",
                "kinesis:DescribeStreamSummary",
                "kinesis:ListShards"
            ],
            "Resource": "arn:aws:kinesis:{{region}}:{{your-account-id}}:stream/{{kinesis-stream-name}}"
        },
        {
            "Sid": "KMSAccess",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:*:*:key/*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "kinesis.{{region}}.amazonaws.com",
                    "kms:EncryptionContext:aws:kinesis:arn": "arn:aws:kinesis:{{region}}:{{your-account-id}}:stream/{{kinesis-stream-name}}",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

Kondisi dalam AWS KMS pernyataan memberikan perlindungan berikut:
+ `kms:ViaService`— Membatasi penggunaan kunci untuk permintaan yang datang melalui layanan Kinesis di Wilayah tertentu.
+ `kms:EncryptionContext:aws:kinesis:arn`— Membatasi penggunaan kunci untuk operasi enkripsi untuk aliran data Kinesis yang ditentukan.
+ `aws:ResourceAccount`— Kunci harus milik AWS akun yang sama dengan prinsipal panggilan, yang mencegah penggunaan kunci lintas akun.

**catatan**  
 AWS KMS Kunci yang direferensikan di sini adalah kunci enkripsi pada aliran data Kinesis, bukan kunci cluster AWS KMS . Kunci enkripsi cluster melindungi data CDC di dalam batas Aurora DSQL. Kunci enkripsi Kinesis melindungi data CDC setelah Aurora DSQL menuliskannya ke aliran data Kinesis.

## Perlindungan data
<a name="cdc-data-protection"></a>

Aurora DSQL menggunakan Transport Layer Security (TLS) untuk mengenkripsi data CDC dalam perjalanan antara Aurora DSQL dan target Anda. Dalam batas Aurora DSQL, Aurora DSQL mengenkripsi data CDC saat istirahat dengan menggunakan kunci enkripsi cluster.

Jika klaster menggunakan kunci yang dikelola AWS KMS pelanggan dan kunci itu menjadi tidak dapat diakses, transisi `ACTIVE` atau `IMPAIRED` aliran ke `IMPAIRED` kode kesalahan. `CLUSTER_CMK_INACCESSIBLE` Jika kunci menjadi tidak dapat diakses sebelum aliran selesai dibuat, aliran beralih langsung ke. `FAILED`

Untuk penjelasan rinci tentang enkripsi di Aurora DSQL, lihat Enkripsi [data untuk Amazon Aurora DSQL dalam panduan](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/data-encryption.html) ini.