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 QLDB des ressources. Ils ne peuvent pas non plus effectuer de tâches en utilisant le AWS Management Console, AWS Command Line Interface (AWS CLI) ou AWS API. Pour autoriser les utilisateurs à effectuer des actions sur les ressources dont ils ont besoin, un IAM administrateur peut créer des IAM politiques. L'administrateur peut ensuite ajouter les IAM politiques aux rôles, et les utilisateurs peuvent assumer les rôles.
Pour savoir comment créer une politique IAM basée sur l'identité à l'aide de ces exemples de documents de JSON stratégie, consultez la section Créer des IAM politiques (console) dans le guide de l'IAMutilisateur.
Pour plus de détails sur les actions et les types de ressources définis parQLDB, y compris le format de ARNs pour chacun des types de ressources, consultez la section Actions, ressources et clés de condition pour Amazon QLDB dans le Service Authorization Reference.
Table des matières
- Bonnes pratiques en matière de politiques
- Utilisation de la QLDB console
- Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
- Transactions de données en cours
- Autorisations standard pour les actions PartiQL et les ressources des tables
- Accès complet à toutes les actions
- Accès complet à toutes les actions en fonction des balises du tableau
- Accès en lecture/écriture
- Accès en lecture seule
- Accès en lecture seule à une table spécifique
- Autoriser l'accès pour créer des tables
- Autoriser l'accès pour créer des tables en fonction des balises de demande
- Autorisations standard pour les actions PartiQL et les ressources des tables
- Exportation d'un journal vers un compartiment Amazon S3
- Diffusion d'un journal sur Kinesis Data Streams
- Mise à jour QLDB des registres en fonction des balises
Important
Avis de fin de support : les clients existants pourront utiliser Amazon QLDB jusqu'à la fin du support le 31 juillet 2025. Pour plus de détails, consultez Migrer un Amazon QLDB Ledger vers Amazon Aurora SQL Postgre
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 QLDB des ressources 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 les politiques AWS gérées ou les politiques AWS gérées pour les fonctions professionnelles dans le Guide de IAM l'utilisateur.
-
Appliquer les autorisations du moindre privilège : lorsque vous définissez des autorisations à IAM l'aide de politiques, accordez uniquement les autorisations nécessaires à l'exécution d'une 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 IAM pour appliquer des autorisations, consultez la section Politiques et autorisations du Guide de IAM l'utilisateur. IAM
-
Utilisez des conditions dans IAM les politiques pour restreindre davantage l'accès : vous pouvez ajouter une condition à vos politiques pour limiter l'accès aux actions et aux ressources. Par exemple, vous pouvez rédiger une condition de politique pour spécifier que toutes les demandes doivent être envoyées en utilisantSSL. 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, voir Éléments IAM JSON de politique : Condition dans le guide de IAM l'utilisateur.
-
Utilisez IAM Access Analyzer pour valider vos IAM politiques afin de garantir des autorisations sécurisées et fonctionnelles. IAM Access Analyzer valide les politiques nouvelles et existantes afin qu'elles soient conformes au langage des IAM politiques (JSON) et IAM aux meilleures pratiques. IAMAccess Analyzer fournit plus de 100 vérifications des politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d'informations, consultez la section Valider les politiques avec IAM Access Analyzer dans le guide de l'IAMutilisateur.
-
Exiger l'authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des IAM utilisateurs ou un utilisateur root Compte AWS, activez-le MFA pour une sécurité supplémentaire. Pour exiger le MFA moment où les API opérations sont appelées, ajoutez MFA des conditions à vos politiques. Pour plus d'informations, consultez la section APIAccès sécurisé avec MFA dans le guide de IAM l'utilisateur.
Pour plus d'informations sur les meilleures pratiques en matière de sécuritéIAM, consultez la section Bonnes pratiques en matière de sécurité IAM dans le Guide de IAM l'utilisateur.
Utilisation de la QLDB console
Pour accéder à la QLDB console Amazon, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les détails QLDB des ressources de votre Compte AWS. Si vous créez une politique 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 politique.
Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement le AWS CLI ou le AWS API. Au lieu de cela, autorisez uniquement l'accès aux actions correspondant à l'APIopération qu'ils tentent d'effectuer.
Pour garantir aux utilisateurs et aux rôles un accès complet à la QLDB console et à toutes ses fonctionnalités, associez la politique AWS gérée suivante aux entités. Pour plus d'informationsAWS politiques gérées pour Amazon QLDB, reportez-vous à la section « Ajouter des autorisations à un utilisateur » dans le Guide de IAM l'utilisateur.
AmazonQLDBConsoleFullAccess
Autorisations d'historique des requêtes
Outre QLDB les autorisations, certaines fonctionnalités de la 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 d'autres. Services AWS Pour une liste complète des DBQMS API actions, voir Service de métadonnées de requête de base de données dans la référence d'autorisation du service.
Pour autoriser les autorisations relatives à l'historique des requêtes, vous pouvez utiliser la politique AWS gérée mazonQLDBConsoleFullAccessA. Cette politique utilise un caractère générique (dbqms:*
) pour autoriser toutes les DBQMS actions pour toutes les ressources.
Vous pouvez également créer une IAM politique personnalisée et inclure les DBQMS actions suivantes. L'éditeur de requêtes partiQL de la QLDB console nécessite des autorisations pour utiliser ces actions pour les 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 autoriser un accès complet à la QLDB console sans aucune autorisation d'historique des requêtes, vous pouvez créer une IAM politique personnalisée qui exclut toutes les DBQMS actions. Par exemple, le document de politique suivant autorise les mêmes autorisations que celles accordées par la politique AWS gérée A mazonQLDBConsole FullAccess, à l'exception des actions qui commencent par le préfixe dbqms
de service.
{ "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 IAM utilisateurs de consulter les politiques intégrées et gérées associées à leur identité d'utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide du AWS CLI ou. AWS API
{ "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 les données QLDB transactionnelles API (QLDBSession) en exécutant des instructions partiQL sur un registre, vous devez autoriser l'action. SendCommand
API Le JSON document suivant est un exemple de politique qui autorise uniquement l'SendCommand
APIaction sur le registremyExampleLedger
.
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
, et myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 autorise l'exécution de 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 QLDB ressources. Pour de plus amples informations, veuillez consulter 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 IAM politique 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
Rubriques
- Accès complet à toutes les actions
- Accès complet à toutes les actions en fonction des balises du tableau
- Accès en lecture/écriture
- Accès en lecture seule
- Accès en lecture seule à une table spécifique
- Autoriser l'accès pour créer des tables
- Autoriser l'accès pour créer des tables en fonction des balises de demande
Accès complet à toutes les actions
Le document JSON de politique suivant accorde un accès complet à l'utilisation de 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 myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 JSON politique 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 myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 JSON de politique 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 myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 JSON de politique suivant accorde des autorisations de lecture seule sur toutes les tables de. myExampleLedger
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
, et myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 JSON de politique 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
,
myExampleLedger
, et Au1EiThbt8s0z9wM26REZN
dans l'exemple avec vos propres informations.
{ "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 JSON de politique suivant autorise la création de tables dansmyExampleLedger
. L'qldb:PartiQLCreateTable
action 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:PartiQLCreateTable
autorisation doit utiliser un caractère générique (*) dans le tableau ARN pour spécifier la ressource.
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
, et myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 JSON de politique 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 à la fois 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 myExampleLedger
dans l'exemple avec vos propres informations.
{ "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 QLDB journal
Dans l'exemple suivant, vous accordez à un utilisateur l' Compte AWS autorisation d'effectuer l'qldb:ExportJournalToS3
action sur une ressource du QLDB registre. Vous accordez également des autorisations pour effectuer l'iam:PassRole
action sur la ressource de IAM rôle que vous souhaitez transmettre au QLDB service. Cela est obligatoire pour toutes les demandes d'exportation de journaux.
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
,
myExampleLedger
, et qldb-s3-export
dans l'exemple avec 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 IAM rôle pour accorder QLDB l'accès à l'écriture dans l'un de vos compartiments Amazon S3. amzn-s3-demo-bucket
Cela est également requis pour toutes les exportations de QLDB journaux.
Outre l'octroi de l's3:PutObject
autorisation, la politique accorde également l's3:PutObjectAcl
autorisation de définir les autorisations de la liste de contrôle d'accès (ACL) pour un objet.
Pour utiliser cette politique, remplacez amzn-s3-demo-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:::amzn-s3-demo-bucket/*" } ] }
Vous associez ensuite cette politique d'autorisation à un IAM rôle qui QLDB peut assumer pour accéder à votre compartiment Amazon S3. Le JSON document suivant est un exemple de politique de confiance qui permet d'QLDBassumer le IAM rôle de n'importe quelle QLDB ressource du compte 123456789012
uniquement.
Pour utiliser cette politique, remplacez us-east-1
and 123456789012
dans l'exemple avec 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 relatives aux flux de QLDB journaux
Dans l'exemple suivant, vous accordez à un utilisateur l' Compte AWS autorisation d'effectuer l'qldb:StreamJournalToKinesis
action sur toutes les sous-ressources de QLDB flux d'un registre. Vous accordez également des autorisations pour effectuer l'iam:PassRole
action sur la ressource de IAM rôle que vous souhaitez transmettre au QLDB service. Cela est obligatoire pour toutes les demandes de flux de journal.
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
,
myExampleLedger
, et qldb-kinesis-stream
dans l'exemple avec vos propres informations.
{ "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 IAM rôle pour autoriser l'QLDBaccès à l'écriture d'enregistrements de données dans votre flux de données Amazon Kinesis, stream-for-qldb
. Cela est également requis pour tous les flux de QLDB journaux.
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
, et stream-for-qldb
dans l'exemple avec vos propres informations.
{ "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 IAM rôle qui QLDB peut assumer pour accéder à votre flux de données Kinesis. Le JSON document suivant est un exemple de politique de confiance qui permet d'QLDBassumer un IAM rôle pour n'importe quel QLDB flux dans le compte myExampleLedger
uniquement 123456789012
pour le registre.
Pour utiliser cette politique, remplacez us-east-1
,
123456789012
, et myExampleLedger
dans l'exemple avec 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
:stream/myExampleLedger
/*" }, "StringEquals": { "aws:SourceAccount": "123456789012
" } } } ] }
Mise à jour QLDB des registres en fonction des balises
Vous pouvez utiliser des conditions dans votre politique basée sur l'identité pour contrôler l'accès aux QLDB ressources 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 QLDB registre, celui-ci doit être étiqueté Owner=richard-roe
ou. 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, voir Éléments IAM JSON de politique : Condition dans le guide de IAM l'utilisateur.