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à.
Esempi di policy basate sull'identità per Amazon QLDB
Per impostazione predefinita, gli utenti e i ruoli non sono autorizzati a creare o modificare risorse. QLDB Inoltre, non possono eseguire attività utilizzando AWS Management Console, AWS Command Line Interface (AWS CLI) o AWS API. Per concedere agli utenti il permesso di eseguire azioni sulle risorse di cui hanno bisogno, un IAM amministratore può creare IAM policy. L'amministratore può quindi aggiungere le IAM politiche ai ruoli e gli utenti possono assumerli.
Per informazioni su come creare una politica IAM basata sull'identità utilizzando questi documenti di esempio, consulta Create JSON IAM policy (console) nella Guida per l'IAMutente.
Per dettagli sulle azioni e sui tipi di risorse definiti daQLDB, incluso il formato di ARNs per ogni tipo di risorsa, consulta Azioni, risorse e chiavi di condizione per Amazon QLDB nel Service Authorization Reference.
Indice
- Best practice per le policy
- Utilizzo della QLDB console
- Consentire agli utenti di visualizzare le loro autorizzazioni
- Esecuzione di transazioni di dati
- Esportazione di un journal in un bucket Amazon S3
- Trasmissione di un diario su Kinesis Data Streams
- Aggiornamento dei QLDB registri in base ai tag
Importante
Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto il 31/07/2025. Per ulteriori dettagli, consulta Migrare un Amazon QLDB Ledger ad Amazon Aurora Postgre
Best practice per le policy
Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare risorse nel tuo account. QLDB Queste azioni possono comportare costi aggiuntivi per l' Account AWS. Quando crei o modifichi policy basate su identità, segui queste linee guida e raccomandazioni:
-
Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per ulteriori informazioni, consulta le politiche AWS gestite o le politiche AWS gestite per le funzioni lavorative nella Guida per l'IAMutente.
-
Applica le autorizzazioni con privilegi minimi: quando imposti le autorizzazioni con le IAM politiche, concedi solo le autorizzazioni necessarie per eseguire un'attività. Puoi farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Per ulteriori informazioni sull'utilizzo per applicare le autorizzazioni, consulta Politiche e autorizzazioni nella Guida IAM per l'utente. IAM IAM
-
Utilizza le condizioni nelle IAM politiche per limitare ulteriormente l'accesso: puoi aggiungere una condizione alle tue politiche per limitare l'accesso ad azioni e risorse. Ad esempio, puoi scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzandoSSL. È inoltre possibile utilizzare condizioni per concedere l'accesso alle azioni di servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio AWS CloudFormation. Per ulteriori informazioni, consulta Elementi IAM JSON della politica: Condizione nella Guida IAM per l'utente.
-
Usa IAM Access Analyzer per convalidare IAM le tue policy e garantire autorizzazioni sicure e funzionali: IAM Access Analyzer convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio delle IAM policy () e alle best practice. JSON IAM IAMAccess Analyzer fornisce più di 100 controlli delle politiche e consigli pratici per aiutarti a creare policy sicure e funzionali. Per ulteriori informazioni, consulta Convalida delle politiche con IAM Access Analyzer nella Guida per l'utente. IAM
-
Richiedi l'autenticazione a più fattori (MFA): se hai uno scenario che richiede l'utilizzo di IAM utenti o di un utente root Account AWS, attiva questa opzione MFA per una maggiore sicurezza. Per richiedere MFA quando vengono richiamate API le operazioni, aggiungi MFA delle condizioni alle tue politiche. Per ulteriori informazioni, consulta Secure API access with MFA nella Guida IAM per l'utente.
Per ulteriori informazioni sulle best practice inIAM, consulta la sezione Procedure consigliate in materia di sicurezza IAM nella Guida IAM per l'utente.
Utilizzo della QLDB console
Per accedere alla QLDB console Amazon, devi disporre di un set minimo di autorizzazioni. Queste autorizzazioni devono consentirti di elencare e visualizzare i dettagli sulle QLDB risorse del tuo. Account AWS Se crei una policy basata sull'identità più restrittiva rispetto alle autorizzazioni minime richieste, la console non funzionerà nel modo previsto per le entità (utenti o ruoli) associate a tale policy.
Non è necessario concedere autorizzazioni minime per la console agli utenti che effettuano chiamate solo verso il AWS CLI o il. AWS API Consenti invece l'accesso solo alle azioni che corrispondono all'APIoperazione che stanno cercando di eseguire.
Per garantire che utenti e ruoli abbiano pieno accesso alla QLDB console e a tutte le sue funzionalità, allega la seguente politica AWS gestita alle entità. Per ulteriori informazioniAWS politiche gestite per Amazon QLDB, consulta Aggiungere autorizzazioni a un utente nella Guida per l'IAMutente.
AmazonQLDBConsoleFullAccess
Autorizzazioni relative alla cronologia delle query
Oltre alle QLDB autorizzazioni, alcune funzionalità della console richiedono le autorizzazioni per il Database Query Metadata Service (prefisso del servizio:). dbqms
Si tratta di un servizio solo interno che gestisce le interrogazioni recenti e salvate sull'editor di query della console e altro. QLDB Servizi AWSPer un elenco completo delle DBQMS API azioni, consulta Database Query Metadata Service nel Service Authorization Reference.
Per consentire le autorizzazioni relative alla cronologia delle query, è possibile utilizzare la policy AWS gestita A. mazonQLDBConsole FullAccess Questa politica utilizza un carattere jolly (dbqms:*
) per consentire tutte le DBQMS azioni per tutte le risorse.
In alternativa, puoi creare una IAM politica personalizzata e includere le seguenti DBQMS azioni. L'editor di query PartiQL sulla QLDB console richiede le autorizzazioni per utilizzare queste azioni per le funzionalità di cronologia delle query.
dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery
Autorizzazioni di accesso completo alla console senza cronologia delle query
Per consentire l'accesso completo alla QLDB console senza autorizzazioni relative alla cronologia delle query, puoi creare una IAM policy personalizzata che escluda tutte le azioni. DBQMS Ad esempio, il seguente documento di policy consente le stesse autorizzazioni concesse dalla policy AWS gestita A mazonQLDBConsole FullAccess, ad eccezione delle azioni che iniziano con il prefisso del servizio. 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" } } } ] }
Consentire agli utenti di visualizzare le loro autorizzazioni
Questo esempio mostra come è possibile creare una politica che consenta IAM agli utenti di visualizzare le politiche in linea e gestite allegate alla propria identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando o a livello di codice. AWS CLI 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": "*" } ] }
Esecuzione di transazioni di dati
Per interagire con i dati QLDB transazionali API (QLDBSession) eseguendo istruzioni PartiQL su un registro, è necessario concedere l'autorizzazione all'azione. SendCommand
API Il JSON documento seguente è un esempio di politica che concede l'autorizzazione solo all'azione sul SendCommand
API registro. myExampleLedger
Per utilizzare questo criterio, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:
us-east-1
:123456789012
:ledger/myExampleLedger
" } ] }
Se myExampleLedger
utilizza la modalità ALLOW_ALL
autorizzazioni, questa politica concede le autorizzazioni per eseguire tutti i comandi PartiQL su qualsiasi tabella del registro.
È inoltre possibile utilizzare una politica AWS gestita per concedere l'accesso completo a tutte le risorse. QLDB Per ulteriori informazioni, consulta AWS politiche gestite per Amazon QLDB.
Autorizzazioni standard per le azioni PartiQL e le risorse delle tabelle
Per i registri in modalità STANDARD
autorizzazioni, è possibile fare riferimento ai seguenti documenti IAM politici come esempi di concessione delle autorizzazioni PartiQL appropriate. Per un elenco delle autorizzazioni richieste per ogni comando PartiQL, vedere. Riferimento alle autorizzazioni PartiQL
Argomenti
Accesso completo a tutte le azioni
Il seguente documento di JSON policy garantisce l'accesso completo all'uso di tutti i comandi PartiQL su tutte le tabelle di. myExampleLedger
Questa politica produce lo stesso effetto dell'utilizzo della modalità di ALLOW_ALL
autorizzazione per il registro.
Per utilizzare questo criterio, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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" ] } ] }
Accesso completo a tutte le azioni basate sui tag della tabella
Il seguente documento JSON politico utilizza una condizione basata sui tag delle risorse della tabella per concedere l'accesso completo all'utilizzo di tutti i comandi PartiQL su tutte le tabelle in. myExampleLedger
Le autorizzazioni vengono concesse solo se il tag della tabella environment
ha il valore. development
avvertimento
Questo è un esempio di utilizzo di un carattere jolly (*) per consentire tutte le azioni PartiQL, incluse le operazioni amministrative e di lettura/scrittura su tutte le tabelle di un registro. QLDB È invece consigliabile specificare esplicitamente ogni azione da concedere e solo ciò di cui l'utente, il ruolo o il gruppo ha bisogno.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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" } } } ] }
Accesso in lettura/scrittura
Il seguente documento JSON normativo concede le autorizzazioni per selezionare, inserire, aggiornare ed eliminare i dati su tutte le tabelle di. myExampleLedger
Questa politica non concede le autorizzazioni per oscurare i dati o modificare lo schema, ad esempio per creare e eliminare tabelle e indici.
Nota
Un'UPDATE
istruzione richiede le autorizzazioni sia per le azioni che per le azioni sulla tabella che viene qldb:PartiQLUpdate
modificataqldb:PartiQLSelect
. Quando si esegue un'UPDATE
istruzione, questa esegue un'operazione di lettura oltre all'operazione di aggiornamento. La richiesta di entrambe le azioni garantisce che solo gli utenti autorizzati a leggere il contenuto di una tabella ricevano UPDATE
le autorizzazioni.
Analogamente, un'DELETE
istruzione richiede le autorizzazioni sia per le azioni che per qldb:PartiQLDelete
le qldb:PartiQLSelect
azioni.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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" ] } ] }
Accesso in sola lettura
Il seguente documento di JSON policy concede autorizzazioni di sola lettura su tutte le tabelle di. myExampleLedger
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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" ] } ] }
Accesso in sola lettura a una tabella specifica
Il seguente documento di JSON policy concede autorizzazioni di sola lettura per una tabella specifica in. myExampleLedger
In questo esempio, l'ID della tabella è. Au1EiThbt8s0z9wM26REZN
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
,
myExampleLedger
e Au1EiThbt8s0z9wM26REZN
nell'esempio con le tue informazioni.
{ "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
" ] } ] }
Consenti l'accesso per creare tabelle
Il seguente documento JSON di policy concede il permesso di creare tabelle inmyExampleLedger
. L'qldb:PartiQLCreateTable
azione richiede le autorizzazioni per il tipo di risorsa della tabella. Tuttavia, l'ID di tabella di una nuova tabella non è noto al momento dell'esecuzione di un'CREATE TABLE
istruzione. Pertanto, una politica che concede l'qldb:PartiQLCreateTable
autorizzazione deve utilizzare un carattere jolly (*) nella tabella ARN per specificare la risorsa.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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/*" ] } ] }
Consenti l'accesso per creare tabelle basate sui tag di richiesta
Il seguente documento JSON politico utilizza una condizione basata sulla chiave di aws:RequestTag
contesto per concedere l'autorizzazione alla creazione di tabelle inmyExampleLedger
. Le autorizzazioni vengono concesse solo se il tag di richiesta environment
ha il valoredevelopment
. L'aggiunta di tag alle tabelle al momento della creazione richiede l'accesso qldb:PartiQLCreateTable
sia qldb:TagResource
alle azioni che. Per informazioni su come etichettare le tabelle al momento della creazione, consultaEtichettatura delle tabelle.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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" } } } ] }
Esportazione di un journal in un bucket Amazon S3
Fase 1: QLDB autorizzazioni per l'esportazione del diario
Nell'esempio seguente, concedi a un utente Account AWS le autorizzazioni per eseguire l'qldb:ExportJournalToS3
azione su una risorsa di QLDB registro. Concedete inoltre le autorizzazioni per eseguire l'iam:PassRole
azione sulla risorsa del IAM ruolo che desiderate passare al servizio. QLDB Questo è necessario per tutte le richieste di esportazione del diario.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
,
myExampleLedger
e qldb-s3-export
nell'esempio con le tue informazioni.
{ "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" } } } ] }
Fase 2: autorizzazioni per i bucket Amazon S3
Nell'esempio seguente, usi un IAM ruolo per concedere QLDB l'accesso alla scrittura in uno dei tuoi bucket Amazon S3,. amzn-s3-demo-bucket
Questo è necessario anche per tutte le esportazioni di QLDB giornali.
Oltre a concedere l's3:PutObject
autorizzazione, la politica concede anche l's3:PutObjectAcl
autorizzazione per la possibilità di impostare i permessi dell'access control list (ACL) per un oggetto.
Per utilizzare questa politica, sostituisci amzn-s3-demo-bucket nell'esempio con il nome del tuo bucket Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBJournalExportS3Permissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Quindi, colleghi questa politica di autorizzazioni a un IAM ruolo che QLDB puoi assumere per accedere al tuo bucket Amazon S3. Il seguente JSON documento è un esempio di politica di fiducia che consente di QLDB assumere il IAM ruolo solo per qualsiasi QLDB risorsa dell'account. 123456789012
Per utilizzare questa politica, sostituisci us-east-1
e 123456789012
nell'esempio con le tue informazioni.
{ "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
" } } } ] }
Trasmissione di un diario su Kinesis Data Streams
Fase 1: autorizzazioni per lo streaming del QLDB journal
Nell'esempio seguente, concedi a un utente tra le tue Account AWS autorizzazioni per eseguire l'qldb:StreamJournalToKinesis
azione su tutte le QLDB sottorisorse di streaming in un registro. Concedete inoltre le autorizzazioni per eseguire l'iam:PassRole
azione sulla risorsa del IAM ruolo che desiderate passare al servizio. QLDB Questa operazione è necessaria per tutte le richieste di flusso journal.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
,
myExampleLedger
e qldb-kinesis-stream
nell'esempio con le tue informazioni.
{ "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" } } } ] }
Fase 2: Autorizzazioni Kinesis Data Streams
Nell'esempio seguente, utilizzi un IAM ruolo per concedere l'QLDBaccesso ai record di dati di scrittura nel flusso di dati di Amazon Kinesis, stream-for-qldb
. Ciò è necessario anche per tutti gli stream del QLDB diario.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e stream-for-qldb
nell'esempio con le tue informazioni.
{ "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
" } ] }
Quindi, colleghi questa politica di autorizzazione a un IAM ruolo che QLDB può assumere per accedere al flusso di dati Kinesis. Il seguente JSON documento è un esempio di politica di fiducia che consente di QLDB assumere un IAM ruolo per qualsiasi QLDB flusso nell'account solo 123456789012
per il registromyExampleLedger
.
Per utilizzare questa politica, sostituisci us-east-1
,
123456789012
e myExampleLedger
nell'esempio con le tue informazioni.
{ "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
" } } } ] }
Aggiornamento dei QLDB registri in base ai tag
Puoi utilizzare le condizioni della tua politica basata sull'identità per controllare l'accesso alle QLDB risorse in base ai tag. Questo esempio mostra come è possibile creare una politica che consenta l'aggiornamento di un registro. Tuttavia, l'autorizzazione viene concessa solo se il tag ledger Owner
ha il valore del nome utente di quell'utente. Questa policy concede anche le autorizzazioni necessarie per completare questa azione nella 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}"} } } ] }
Puoi collegare questa policy agli utenti nel tuo account. Se un utente denominato richard-roe
tenta di aggiornare un QLDB registro, il registro deve essere contrassegnato con o. Owner=richard-roe
owner=richard-roe
In caso contrario, gli viene negato l'accesso. La chiave di tag di condizione Owner
corrisponde sia a Owner
che a owner
perché i nomi delle chiavi di condizione non distinguono tra maiuscole e minuscole. Per ulteriori informazioni, consulta Elementi IAM JSON della politica: Condizione nella Guida per l'IAMutente.