

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

**Importante**  
Questa funzionalità viene fornita come anteprima ed è soggetta a modifiche. AWS Per ulteriori informazioni, consulta la sezione 2, Beta e anteprime, nei Termini di [AWS servizio](https://aws.amazon.com/service-terms/). Per ulteriori informazioni sui prezzi degli stream CDC, consulta la pagina dei prezzi di [Aurora DSQL](https://aws.amazon.com/rds/aurora/dsql/pricing/).  
Prima della disponibilità generale, aggiungeremo nuovi tipi di operazioni (`"op": "u"`per gli aggiornamenti) al payload dello stream. Per garantire che l'applicazione gestisca queste modifiche senza modifiche, considera qualsiasi `op` valore non riconosciuto come un problema, applicando il payload. `after` Per informazioni dettagliate, vedi [Comprensione dei record CDC](cdc-record-format.md).

Gli stream CDC richiedono due set separati di autorizzazioni IAM:
+ **Autorizzazioni del chiamante**: il principale IAM che chiama le operazioni dell'API CDC stream (`CreateStream`,, `GetStream``DeleteStream`,`ListStreams`) necessita dell'autorizzazione per queste azioni e per. `iam:PassRole`
+ **Ruolo di servizio**: un ruolo IAM che Aurora DSQL assume in fase di esecuzione per scrivere i record CDC sulla destinazione. Si crea questo ruolo, si allega una politica di attendibilità che consente al responsabile del servizio Aurora DSQL di assumerlo e si allega una politica di autorizzazioni che concede l'accesso in scrittura alla destinazione.

**Nota**  
Il ruolo del servizio CDC è separato da qualsiasi politica basata sulle risorse sul cluster Aurora DSQL. Una policy basata sulle risorse del cluster controlla a quali responsabili possono connettersi e interrogare il cluster. Il ruolo del servizio CDC controlla su quale destinazione Aurora DSQL può scrivere i record CDC.

## Autorizzazioni del chiamante
<a name="cdc-iam-caller-permissions"></a>

Il principale IAM che richiama le operazioni dell'API di flusso CDC necessita delle autorizzazioni per le azioni pertinenti e. `dsql` `iam:PassRole` L'`CreateStream`operazione è necessaria `iam:PassRole` perché passa l'ARN del ruolo di servizio ad Aurora DSQL. Di seguito è riportato un esempio di policy:

```
{
    "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"
                }
            }
        }
    ]
}
```

L'`Resource`elemento include sia l'ARN del cluster (richiesto da `CreateStream` and`ListStreams`) che il pattern ARN dello stream (richiesto da and). `GetStream` `DeleteStream`

Per un elenco completo delle autorizzazioni necessarie per ogni operazione, consulta, [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), e [ListStreams](https://docs.aws.amazon.com/aurora-dsql/latest/APIReference/API_ListStreams.html)nel riferimento all'API SQL di riferimento di [Amazon Aurora](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/CHAP_api_reference.html).

## Ruolo del servizio
<a name="cdc-iam-service-role"></a>

Il ruolo di servizio è il ruolo IAM che Aurora DSQL assume per scrivere record CDC sulla destinazione. Crei questo ruolo e passi il relativo ARN `targetDefinition.kinesis.roleArn` sul campo quando chiami. `CreateStream` Il ruolo richiede una politica di fiducia e una politica di autorizzazioni.

## Politica di fiducia per i ruoli di servizio
<a name="cdc-iam-trust-policy"></a>

La policy di fiducia deve consentire al responsabile del servizio Aurora DSQL di assumere il ruolo. Per proteggerti dagli attacchi [confusi dei vice](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) agenti, usa i tasti `aws:SourceAccount` e `aws:SourceArn` condition.

```
{
    "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/*"
                }
            }
        }
    ]
}
```

La `aws:SourceArn` condizione limita il ruolo agli stream in un cluster specifico. È necessario utilizzare la wildcard (`stream/*`) durante la creazione di uno stream perché Aurora DSQL non ha ancora assegnato l'identificatore di flusso. Dopo aver creato uno stream, puoi restringere la condizione allo stream esatto ARN `arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/{{cluster-id}}/stream/{{stream-id}}` () se il ruolo serve un singolo flusso.

Per utilizzare il ruolo con gli stream su qualsiasi cluster del tuo account, usa una jolly più ampia:. `arn:aws:dsql:{{region}}:{{your-account-id}}:cluster/*/stream/*`

Per saperne di più sulla prevenzione della confusione, consulta questa guida[Cross-service confusa prevenzione sostitutiva](cross-service-confused-deputy-prevention.md).

## Politica di autorizzazione dei ruoli di servizio
<a name="cdc-iam-permissions-policy"></a>

La politica delle autorizzazioni concede al ruolo di servizio l'accesso alla scrittura di record nel flusso di dati Kinesis. La seguente politica include sia le autorizzazioni di scrittura che le autorizzazioni Kinesis. AWS KMS L'`KMSAccess`istruzione è richiesta solo se il flusso di dati Kinesis utilizza una chiave gestita AWS KMS dal cliente, ma è possibile includerla preventivamente in modo che l'aggiunta di una chiave gestita dal cliente in un secondo momento non interrompa il flusso CDC.

```
{
    "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}"
                }
            }
        }
    ]
}
```

Le condizioni contenute nella AWS KMS dichiarazione forniscono le seguenti protezioni:
+ `kms:ViaService`— Limita l'utilizzo delle chiavi alle richieste che arrivano tramite il servizio Kinesis nella regione specificata.
+ `kms:EncryptionContext:aws:kinesis:arn`— Limita l'utilizzo delle chiavi alle operazioni di crittografia per il flusso di dati Kinesis specificato.
+ `aws:ResourceAccount`— La chiave deve appartenere allo stesso AWS account del principale chiamante, il che impedisce l'utilizzo della chiave tra account.

**Nota**  
La AWS KMS chiave a cui si fa riferimento qui è la chiave di crittografia sul flusso di dati Kinesis, non la chiave del cluster AWS KMS . La chiave di crittografia del cluster protegge i dati CDC all'interno del limite Aurora DSQL. La chiave di crittografia Kinesis protegge i dati CDC dopo che Aurora DSQL li ha scritti nel flusso di dati Kinesis.

## Protezione dei dati
<a name="cdc-data-protection"></a>

Aurora DSQL utilizza Transport Layer Security (TLS) per crittografare i dati CDC in transito tra Aurora DSQL e la destinazione. Entro i confini di Aurora DSQL, Aurora DSQL crittografa i dati CDC inattivi utilizzando la chiave di crittografia del cluster.

Se il cluster utilizza una chiave gestita AWS KMS dal cliente e tale chiave diventa inaccessibile, un flusso `ACTIVE` o `IMPAIRED` passa a uno stream con il codice di errore. `IMPAIRED` `CLUSTER_CMK_INACCESSIBLE` Se la chiave diventa inaccessibile prima del termine della creazione dello stream, lo stream passa direttamente a. `FAILED`

Per una spiegazione dettagliata della crittografia in Aurora DSQL, consulta la sezione [Crittografia dei dati per Amazon Aurora](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/data-encryption.html) DSQL in questa guida.