Exemples de politiques basées sur l'identité pour Amazon QLDB - Amazon Quantum Ledger Database (Amazon QLDB)

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.

Exemples de politiques basées sur l'identité pour Amazon QLDB

Par défaut, les utilisateurs et les rôles ne sont pas autorisés à créer ou à modifier des ressources QLDB. Ils ne peuvent pas non plus effectuer de tâches à l'aide de l'API AWS Management Console, AWS Command Line Interface (AWS CLI) ou de AWS l'API. Pour octroyer aux utilisateurs des autorisations d’effectuer des actions sur les ressources dont ils ont besoin, un administrateur IAM peut créer des politiques IAM. L’administrateur peut ensuite ajouter les politiques IAM aux rôles et les utilisateurs peuvent assumer les rôles.

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez Création de politiques dans l’onglet JSON dans le Guide de l’utilisateur IAM.

Pour plus de détails sur les actions et les types de ressources définis par QLDB, y compris le format des ARN pour chacun des types de ressources, consultez la section Actions, ressources et clés de condition pour Amazon QLDB dans le Service Authorization Reference.

Bonnes pratiques en matière de politiques

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer des ressources QLDB dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :

  • Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations à vos utilisateurs et à vos charges de travail, utilisez les politiques AWS gérées qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez politiques gérées par AWS ou politiques gérées par AWS pour les activités professionnelles dans le Guide de l’utilisateur IAM.

  • Accorder les autorisations de moindre privilège : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées autorisations de moindre privilège. Pour plus d’informations sur l’utilisation de IAM pour appliquer des autorisations, consultez politiques et autorisations dans IAM dans le Guide de l’utilisateur IAM.

  • Utiliser des conditions dans les politiques IAM pour restreindre davantage l’accès : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que AWS CloudFormation. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

  • Utilisez IAM Access Analyzer pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles : IAM Access Analyzer valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez Validation de politique IAM Access Analyzer dans le Guide de l’utilisateur IAM.

  • Exiger l'authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger le MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez Configuration de l’accès aux API protégé par MFA dans le Guide de l’utilisateur IAM.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez Bonnes pratiques de sécurité dans IAM dans le Guide de l’utilisateur IAM.

Utilisation de la console QLDB

Pour accéder à la console Amazon QLDB, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les détails relatifs aux ressources QLDB de votre. Compte AWS Si vous créez une stratégie basée sur l’identité qui est plus restrictive que l’ensemble minimum d’autorisations requis, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs ou rôles) tributaires de cette stratégie.

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API qu’ils tentent d’effectuer.

Pour garantir aux utilisateurs et aux rôles un accès complet à la console QLDB et à toutes ses fonctionnalités, associez la politique gérée AWS suivante aux entités. Pour plus d'informationsAWS politiques gérées pour Amazon QLDB, consultez la section « Ajouter des autorisations à un utilisateur » dans le guide de l'utilisateur IAM.

AmazonQLDBConsoleFullAccess

Autorisations d'historique des requêtes

Outre les autorisations QLDB, certaines fonctionnalités de console nécessitent des autorisations pour le service de métadonnées de requête de base de données (préfixe de service :). dbqms Il s'agit d'un service interne uniquement qui gère vos requêtes récentes et enregistrées dans l'éditeur de requêtes de console pour QLDB et autres. Services AWS Pour une liste complète des actions de l'API DBQMS, voir Service de métadonnées de requête de base de données dans la référence d'autorisation de service.

Pour autoriser les autorisations relatives à l'historique des requêtes, vous pouvez utiliser la politique AWS gérée AmazonQLDB ConsoleFullAccess. Cette politique utilise un caractère générique (dbqms:*) pour autoriser toutes les actions DBQMS pour toutes les ressources.

Vous pouvez également créer une politique IAM personnalisée et inclure les actions DBQMS suivantes. L'éditeur de requêtes partiQL de la console QLDB nécessite des autorisations pour utiliser ces actions dans le cadre des fonctionnalités d'historique des requêtes.

dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery

Autorisations d'accès complet à la console sans historique des requêtes

Pour permettre un accès complet à la console QLDB sans aucune autorisation d'historique des requêtes, vous pouvez créer une politique IAM personnalisée qui exclut toutes les actions DBQMS. Par exemple, le document de politique suivant autorise les mêmes autorisations que celles accordées par la politique AWS gérée AmazonQLDB ConsoleFullAccess, à l'exception des actions qui commencent par le préfixe de service. dbqms

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "qldb:CreateLedger", "qldb:UpdateLedger", "qldb:UpdateLedgerPermissionsMode", "qldb:DeleteLedger", "qldb:ListLedgers", "qldb:DescribeLedger", "qldb:ExportJournalToS3", "qldb:ListJournalS3Exports", "qldb:ListJournalS3ExportsForLedger", "qldb:DescribeJournalS3Export", "qldb:CancelJournalKinesisStream", "qldb:DescribeJournalKinesisStream", "qldb:ListJournalKinesisStreamsForLedger", "qldb:StreamJournalToKinesis", "qldb:GetBlock", "qldb:GetDigest", "qldb:GetRevision", "qldb:TagResource", "qldb:UntagResource", "qldb:ListTagsForResource", "qldb:SendCommand", "qldb:ExecuteStatement", "qldb:ShowCatalog", "qldb:InsertSampleData", "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kinesis:ListStreams", "kinesis:DescribeStream" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or 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": "*" } ] }

Transactions de données en cours

Pour interagir avec l'API de données transactionnelles QLDB (session QLDB) en exécutant des instructions partiQL sur un registre, vous devez autoriser l'action de l'API. SendCommand Le document JSON suivant est un exemple de politique qui autorise uniquement l'action de l'SendCommandAPI sur le registremyExampleLedger.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" } ] }

Si le mode ALLOW_ALL autorisations est myExampleLedger utilisé, cette politique accorde l'autorisation d'exécuter toutes les commandes partiQL sur n'importe quelle table du registre.

Vous pouvez également utiliser une politique AWS gérée pour accorder un accès complet à toutes les ressources QLDB. Pour plus d’informations, consultez AWS politiques gérées pour Amazon QLDB.

Autorisations standard pour les actions PartiQL et les ressources des tables

Pour les registres en mode STANDARD autorisations, vous pouvez vous référer aux documents de politique IAM suivants comme exemples d'octroi des autorisations partiQL appropriées. Pour obtenir la liste des autorisations requises pour chaque commande partiQL, consultez le. Référence des autorisations partiQL

Accès complet à toutes les actions

Le document de politique JSON suivant accorde un accès complet pour utiliser toutes les commandes partiQL sur toutes les tables de. myExampleLedger Cette politique produit le même effet que l'utilisation du mode ALLOW_ALL autorisations pour le registre.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateIndex", "qldb:PartiQLDropIndex", "qldb:PartiQLCreateTable", "qldb:PartiQLDropTable", "qldb:PartiQLUndropTable", "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLRedact", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Accès complet à toutes les actions en fonction des balises du tableau

Le document de politique JSON suivant utilise une condition basée sur les balises de ressources de table pour accorder un accès complet à l'utilisation de toutes les commandes partiQL sur toutes les tables de. myExampleLedger Les autorisations ne sont accordées que si la balise de table environment possède la valeurdevelopment.

Avertissement

Il s'agit d'un exemple d'utilisation d'un caractère générique (*) pour autoriser toutes les actions PartiQL, y compris les opérations administratives et de lecture/écriture sur toutes les tables d'un registre QLDB. Il est préférable de spécifier explicitement chaque action à accorder, et uniquement ce dont cet utilisateur, ce rôle ou ce groupe a besoin.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLFullPermissionsBasedOnTags", "Effect": "Allow", "Action": [ "qldb:PartiQL*" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ], "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } } ] }

Accès en lecture/écriture

Le document de politique JSON suivant autorise la sélection, l'insertion, la mise à jour et la suppression de données sur toutes les tables demyExampleLedger. Cette politique n'accorde pas l'autorisation de supprimer des données ou de modifier le schéma, par exemple pour créer et supprimer des tables et des index.

Note

Une UPDATE instruction nécessite des autorisations pour les qldb:PartiQLSelect actions qldb:PartiQLUpdate et sur la table en cours de modification. Lorsque vous exécutez une UPDATE instruction, celle-ci exécute une opération de lecture en plus de l'opération de mise à jour. Le fait d'exiger les deux actions garantit que seuls les utilisateurs autorisés à lire le contenu d'une table obtiennent UPDATE des autorisations.

De même, une DELETE instruction nécessite des autorisations pour les qldb:PartiQLSelect actions qldb:PartiQLDelete et.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadWritePermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLDelete", "qldb:PartiQLInsert", "qldb:PartiQLUpdate", "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Accès en lecture seule

Le document de politique JSON suivant accorde des autorisations de lecture seule sur toutes les tables de. myExampleLedger Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissions", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*", "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/information_schema/user_tables" ] } ] }

Accès en lecture seule à une table spécifique

Le document de politique JSON suivant accorde des autorisations de lecture seule sur une table spécifique dans. myExampleLedger Dans cet exemple, l'ID de table estAu1EiThbt8s0z9wM26REZN.

Pour utiliser cette politique, remplacez us-east-1, 123456789012 et Au1 8S0z9WM26REZn dans l'exemple par vos myExampleLedgerpropres informations. EiThbt

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLReadOnlyPermissionsOnTable", "Effect": "Allow", "Action": [ "qldb:PartiQLSelect", "qldb:PartiQLHistoryFunction" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/Au1EiThbt8s0z9wM26REZN" ] } ] }

Autoriser l'accès pour créer des tables

Le document de politique JSON suivant autorise la création de tables dansmyExampleLedger. L'qldb:PartiQLCreateTableaction nécessite des autorisations sur le type de ressource de table. Toutefois, l'ID d'une nouvelle table n'est pas connu au moment où vous exécutez une CREATE TABLE instruction. Ainsi, une politique qui accorde l'qldb:PartiQLCreateTableautorisation doit utiliser un caractère générique (*) dans l'ARN de la table pour spécifier la ressource.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ] } ] }

Autoriser l'accès pour créer des tables en fonction des balises de demande

Le document de politique JSON suivant utilise une condition basée sur la clé de aws:RequestTag contexte pour accorder l'autorisation de créer des tables dansmyExampleLedger. Les autorisations ne sont accordées que si la balise de demande environment possède la valeurdevelopment. Le balisage des tables lors de leur création nécessite l'accès aux qldb:TagResource actions qldb:PartiQLCreateTable et. Pour savoir comment étiqueter des tableaux lors de leur création, consultezTableaux de balisage.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "QLDBPartiQLCreateTablePermission", "Effect": "Allow", "Action": [ "qldb:PartiQLCreateTable", "qldb:TagResource" ], "Resource": [ "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger/table/*" ], "Condition": { "StringEquals": { "aws:RequestTag/environment": "development" } } } ] }

Exportation d'un journal vers un compartiment Amazon S3

Étape 1 : Autorisations d'exportation du journal QLDB

Dans l'exemple suivant, vous accordez à un utilisateur l' Compte AWS autorisation d'effectuer l'qldb:ExportJournalToS3action sur une ressource de registre QLDB. Vous accordez également des autorisations pour effectuer l'iam:PassRoleaction sur la ressource de rôle IAM que vous souhaitez transmettre au service QLDB. Cela est obligatoire pour toutes les demandes d'exportation de journaux.

Pour utiliser cette politique, remplacez us-east-1, 123456789012 myExampleLedgeret qldb-s3-export dans l'exemple par vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportPermission", "Effect": "Allow", "Action": "qldb:ExportJournalToS3", "Resource": "arn:aws:qldb:us-east-1:123456789012:ledger/myExampleLedger" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-s3-export", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Étape 2 : autorisations du compartiment Amazon S3

Dans l'exemple suivant, vous utilisez un rôle IAM pour accorder à QLDB l'accès à l'écriture dans l'un de vos compartiments Amazon S3. DOC-EXAMPLE-BUCKET Cela est également requis pour toutes les exportations de journaux QLDB.

Outre l'octroi de l's3:PutObjectautorisation, la politique accorde également l's3:PutObjectAclautorisation de définir les autorisations de la liste de contrôle d'accès (ACL) pour un objet.

Pour utiliser cette politique, remplacez DOC-EXAMPLE-BUCKET dans l'exemple par le nom de votre compartiment Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

Vous associez ensuite cette politique d'autorisation à un rôle IAM que QLDB peut assumer pour accéder à votre compartiment Amazon S3. Le document JSON suivant est un exemple de politique de confiance qui permet à QLDB d'assumer le rôle IAM pour n'importe quelle ressource QLDB du compte uniquement. 123456789012

Pour utiliser cette politique, remplacez us-east-1 et 123456789012 dans l'exemple par vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Diffusion d'un journal sur Kinesis Data Streams

Étape 1 : autorisations du flux de journaux QLDB

Dans l'exemple suivant, vous accordez à un utilisateur l' Compte AWS autorisation d'effectuer l'qldb:StreamJournalToKinesisaction sur toutes les sous-ressources de flux QLDB d'un registre. Vous accordez également des autorisations pour effectuer l'iam:PassRoleaction sur la ressource de rôle IAM que vous souhaitez transmettre au service QLDB. Cela est obligatoire pour toutes les demandes de flux de journal.

Pour utiliser cette politique, remplacez us-east-1, 123456789012 myExampleLedgeret, dans l'exemple, par vos propres informations. qldb-kinesis-stream

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalStreamPermission", "Effect": "Allow", "Action": "qldb:StreamJournalToKinesis", "Resource": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, { "Sid": "IAMPassRolePermission", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/qldb-kinesis-stream", "Condition": { "StringEquals": { "iam:PassedToService": "qldb.amazonaws.com" } } } ] }

Étape 2 : autorisations Kinesis Data Streams

Dans l'exemple suivant, vous utilisez un rôle IAM pour autoriser QLDB à écrire des enregistrements de données dans votre flux de données Amazon Kinesis. stream-for-qldb Cela est également requis pour tous les flux de journaux QLDB.

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. stream-for-qldb

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBStreamKinesisPermissions", "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ], "Effect": "Allow", "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/stream-for-qldb" } ] }

Vous associez ensuite cette politique d'autorisation à un rôle IAM que QLDB peut assumer pour accéder à votre flux de données Kinesis. Le document JSON suivant est un exemple de politique de confiance qui permet à QLDB d'assumer un rôle IAM pour n'importe quel flux QLDB dans le compte du registre uniquement. 123456789012 myExampleLedger

Pour utiliser cette politique, remplacez us-east-1, 123456789012, et dans l'exemple par vos propres informations. myExampleLedger

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Mise à jour des registres QLDB en fonction des balises

Vous pouvez utiliser des conditions dans votre politique basée sur l'identité pour contrôler l'accès aux ressources QLDB en fonction de balises. Cet exemple montre comment créer une politique permettant de mettre à jour un registre. Toutefois, l'autorisation n'est accordée que si le tag Ledger Owner a la valeur du nom d'utilisateur de cet utilisateur. Cette politique accorde également les autorisations nécessaires pour réaliser cette action sur la console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListLedgersInConsole", "Effect": "Allow", "Action": "qldb:ListLedgers", "Resource": "*" }, { "Sid": "UpdateLedgerIfOwner", "Effect": "Allow", "Action": "qldb:UpdateLedger", "Resource": "arn:aws:qldb:*:*:ledger/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

Vous pouvez attacher cette stratégie aux utilisateurs de votre compte. Si un utilisateur nommé richard-roe essaie de mettre à jour un registre QLDB, le registre doit être étiqueté ou. Owner=richard-roe owner=richard-roe Dans le cas contraire, l’utilisateur se voit refuser l'accès. La clé de condition de balise Owner correspond à la fois à Owner et à owner, car les noms de clé de condition ne sont pas sensibles à la casse. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.