Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration d'IAM
Important
Cette fonctionnalité est fournie sous forme d' AWS aperçu et est sujette à modification. Pour plus d'informations, consultez la section 2, Bêtas et aperçus, des conditions de AWS service
Avant la mise à disposition générale, nous ajouterons de nouveaux types d'opérations ("op": "u"pour les mises à jour) à votre charge utile de diffusion. Pour vous assurer que votre application gère ces modifications sans modification, considérez toute valeur non reconnue comme une op valeur ajoutée en appliquant la after charge utile. Consultez Comprendre les dossiers du CDC pour plus de détails.
Les flux CDC nécessitent deux ensembles distincts d'autorisations IAM :
-
Autorisations de l'appelant — Le principal IAM qui appelle les opérations de l'API de flux CDC (
CreateStream,,GetStreamDeleteStream,ListStreams) a besoin d'une autorisation pour ces actions et pour.iam:PassRole -
Rôle de service : rôle IAM qu'Aurora DSQL assume lors de l'exécution pour écrire des enregistrements CDC sur votre cible. Vous créez ce rôle, vous associez une politique de confiance qui permet au principal du service Aurora DSQL de l'assumer et vous attachez une politique d'autorisation qui accorde un accès en écriture à la cible.
Note
Le rôle de service CDC est distinct de toute politique basée sur les ressources sur votre cluster Aurora DSQL. Une politique basée sur les ressources du cluster contrôle les principaux autorisés à se connecter au cluster et à l'interroger. Le rôle de service CDC contrôle la cible sur laquelle Aurora DSQL peut écrire des enregistrements CDC.
Autorisations de l'appelant
Le principal IAM qui appelle les opérations de l'API CDC Stream a besoin d'autorisations pour les dsql actions pertinentes etiam:PassRole. L'CreateStreamopération est requise iam:PassRole car elle transmet le rôle de service ARN à Aurora DSQL. Voici un exemple de politique :
{ "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élément inclut à la fois l'ARN du cluster (requis par CreateStream etListStreams) et le modèle d'ARN du flux (requis par GetStream etDeleteStream).
Pour obtenir la liste complète des autorisations requises pour chaque opération, consultez CreateStream, GetStreamDeleteStream, et ListStreamsdans le manuel Amazon Aurora SQL API Reference.
Rôle de service
Le rôle de service est le rôle IAM qu'Aurora DSQL assume pour écrire des enregistrements CDC sur votre cible. Vous créez ce rôle et transmettez son ARN dans le targetDefinition.kinesis.roleArn champ lorsque vous appelezCreateStream. Le rôle nécessite une politique de confiance et une politique d'autorisations.
Politique de confiance relative aux rôles de service
La politique de confiance doit autoriser le principal du service Aurora DSQL à assumer le rôle. Pour vous protéger contre les attaques confuses des adjoints, utilisez les touches de aws:SourceArn condition aws:SourceAccount et.
{ "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 condition limite le rôle aux flux appartenant à un cluster spécifique. Vous devez utiliser le caractère générique (stream/*) lors de la création d'un flux car Aurora DSQL n'a pas encore attribué d'identifiant de flux. Après avoir créé un flux, vous pouvez restreindre la condition à l'ARN exact du flux (arn:aws:dsql:) si le rôle dessert un seul flux.region:your-account-id:cluster/cluster-id/stream/stream-id
Pour utiliser le rôle avec des streams sur n'importe quel cluster de votre compte, utilisez un caractère générique plus large :arn:aws:dsql:.region:your-account-id:cluster/*/stream/*
Pour en savoir plus sur la prévention de la confusion Cross-service prévention confuse des adjoints chez les adjoints, consultez ce guide.
Politique d'autorisation des rôles de service
La politique d'autorisation accorde au rôle de service l'accès à l'écriture d'enregistrements dans votre flux de données Kinesis. La politique suivante inclut à la fois les autorisations d'écriture et AWS KMS les autorisations Kinesis. La KMSAccess déclaration n'est requise que si votre flux de données Kinesis utilise une clé gérée par le AWS KMS
client, mais vous pouvez l'inclure de manière préventive afin que l'ajout ultérieur d'une clé gérée par le client n'interrompe pas votre flux 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}" } } } ] }
Les conditions énoncées dans la AWS KMS déclaration prévoient les protections suivantes :
-
kms:ViaService— Limite l'utilisation des clés aux demandes provenant du service Kinesis dans la région spécifiée. -
kms:EncryptionContext:aws:kinesis:arn— Limite l'utilisation des clés aux opérations de chiffrement pour le flux de données Kinesis spécifié. -
aws:ResourceAccount— La clé doit appartenir au même AWS compte que le principal appelant, ce qui empêche l'utilisation de la clé entre comptes.
Note
La AWS KMS clé référencée ici est la clé de chiffrement du flux de données Kinesis, et non la clé du AWS KMS cluster. La clé de chiffrement du cluster protège les données CDC à l'intérieur de la limite SQL d'Aurora. La clé de chiffrement Kinesis protège les données CDC une fois qu'Aurora DSQL les a écrites dans le flux de données Kinesis.
Protection des données
Aurora DSQL utilise le protocole TLS (Transport Layer Security) pour chiffrer les données CDC en transit entre Aurora DSQL et votre cible. Dans les limites d'Aurora DSQL, Aurora DSQL chiffre les données CDC au repos à l'aide de la clé de chiffrement du cluster.
Si le cluster utilise une clé gérée par le AWS KMS client et que cette clé devient inaccessible, un IMPAIRED flux ACTIVE ou passe à un flux IMPAIRED contenant le code d'erreurCLUSTER_CMK_INACCESSIBLE. Si la clé devient inaccessible avant la fin de la création du flux, le flux passe directement àFAILED.
Pour une explication détaillée du chiffrement dans Aurora DSQL, consultez la section Chiffrement des données pour Amazon Aurora DSQL dans ce guide.