As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exemplos de políticas baseadas em identidade para a Amazon QLDB
Por padrão, usuários e funções não têm permissão para criar ou modificar QLDB recursos. Eles também não podem realizar tarefas usando o AWS Management Console, AWS Command Line Interface (AWS CLI) ou AWS API. Para conceder permissão aos usuários para realizar ações nos recursos de que precisam, um IAM administrador pode criar IAM políticas. O administrador pode então adicionar as IAM políticas às funções e os usuários podem assumir as funções.
Para saber como criar uma política IAM baseada em identidade usando esses exemplos de documentos de JSON política, consulte Criar IAM políticas (console) no Guia do IAMusuário.
Para obter detalhes sobre ações e tipos de recursos definidos porQLDB, incluindo o formato de cada um dos tipos de recursos, consulte Ações, recursos e chaves de condição para a Amazon QLDB na Referência de Autorização de Serviço. ARNs
Sumário
- Melhores práticas de política
- Usando o QLDB console
- Permitir que usuários visualizem suas próprias permissões
- Executar transações de dados
- Exportar um diário para um bucket do Amazon S3
- Fluxo de um diário para o Kinesis Data Streams
- Atualizando QLDB livros contábeis com base em etiquetas
Importante
Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre
Melhores práticas de política
As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir QLDB recursos em sua conta. Essas ações podem incorrer em custos para seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
-
Comece com as políticas AWS gerenciadas e passe para as permissões de privilégios mínimos — Para começar a conceder permissões aos seus usuários e cargas de trabalho, use as políticas AWS gerenciadas que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para obter mais informações, consulte políticas AWS gerenciadas ou políticas AWS gerenciadas para funções de trabalho no Guia IAM do usuário.
-
Aplique permissões com privilégios mínimos — Ao definir permissões com IAM políticas, conceda somente as permissões necessárias para realizar uma tarefa. Você faz isso definindo as ações que podem ser executadas em atributos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre IAM como usar para aplicar permissões, consulte Políticas e permissões IAM no Guia IAM do usuário.
-
Use condições nas IAM políticas para restringir ainda mais o acesso — Você pode adicionar uma condição às suas políticas para limitar o acesso a ações e recursos. Por exemplo, você pode escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usandoSSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como AWS CloudFormation. Para obter mais informações, consulte Elementos IAM JSON da política: Condição no Guia IAM do usuário.
-
Use o IAM Access Analyzer para validar suas IAM políticas e garantir permissões seguras e funcionais — o IAM Access Analyzer valida políticas novas e existentes para que as políticas sigam a linguagem da IAM política (JSON) e as melhores práticas. IAM IAMO Access Analyzer fornece mais de 100 verificações de políticas e recomendações práticas para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validar políticas com o IAM Access Analyzer no Guia do IAMUsuário.
-
Exigir autenticação multifator (MFA) — Se você tiver um cenário que exija IAM usuários ou um usuário root Conta da AWS, ative MFA para obter segurança adicional. Para exigir MFA quando API as operações são chamadas, adicione MFA condições às suas políticas. Para obter mais informações, consulte APIAcesso seguro com MFA no Guia IAM do usuário.
Para obter mais informações sobre as melhores práticas emIAM, consulte as melhores práticas de segurança IAM no Guia IAM do usuário.
Usando o QLDB console
Para acessar o QLDB console da Amazon, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os QLDB recursos em seu Conta da AWS. Caso crie uma política baseada em identidade mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.
Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para AWS CLI o. ou AWS API o. Em vez disso, permita o acesso somente às ações que correspondam à API operação que eles estão tentando realizar.
Para garantir que os usuários e as funções tenham acesso total ao QLDB console e a todos os seus recursos, anexe a seguinte política AWS gerenciada às entidades. Para obter mais informaçõesAWS políticas gerenciadas para a Amazon QLDB, consulte Adicionar permissões a um usuário no Guia do IAM usuário.
AmazonQLDBConsoleFullAccess
Permissões do histórico de consultas
Além das QLDB permissões, alguns recursos do console exigem permissões para o Database Query Metadata Service (prefixo do serviço:dbqms
). Esse é um serviço somente interno que gerencia suas consultas recentes e salvas no editor de consultas do console, entre outras. QLDB Serviços da AWS Para obter uma lista completa de DBQMS API ações, consulte Database Query Metadata Service na Referência de Autorização de Serviço.
Para permitir permissões de histórico de consultas, você pode usar a política AWS gerenciada mazonQLDBConsole FullAccess A. Essa política usa um caractere curinga (dbqms:*
) para permitir todas as DBQMS ações para todos os recursos.
Ou você pode criar uma IAM política personalizada e incluir as DBQMS ações a seguir. O editor de consultas partiQL no QLDB console exige permissões para usar essas ações nos recursos do histórico de consultas.
dbqms:CreateFavoriteQuery dbqms:CreateQueryHistory dbqms:DeleteFavoriteQueries dbqms:DeleteQueryHistory dbqms:DescribeFavoriteQueries dbqms:DescribeQueryHistory dbqms:UpdateFavoriteQuery
Permissões completas do console sem histórico de consultas
Para permitir acesso total ao QLDB console sem nenhuma permissão de histórico de consultas, você pode criar uma IAM política personalizada que exclua todas as DBQMS ações. Por exemplo, o documento de política a seguir permite as mesmas permissões concedidas pela política AWS gerenciada A mazonQLDBConsole FullAccess, exceto ações que começam com o prefixo dbqms
do serviço.
{ "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" } } } ] }
Permitir que usuários visualizem suas próprias permissões
Este exemplo mostra como você pode criar uma política que permita IAM aos usuários visualizar as políticas embutidas e gerenciadas que estão anexadas à identidade do usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando o 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": "*" } ] }
Executar transações de dados
Para interagir com os dados QLDB transacionais API (QLDBSessão) executando instruções partiQL em um livro contábil, você deve conceder permissão para a ação. SendCommand
API O JSON documento a seguir é um exemplo de uma política que concede permissão somente para a SendCommand
API ação no livro contábilmyExampleLedger
.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "QLDBSendCommandPermission", "Effect": "Allow", "Action": "qldb:SendCommand", "Resource": "arn:aws:qldb:
us-east-1
:123456789012
:ledger/myExampleLedger
" } ] }
Se myExampleLedger
usar o modo de ALLOW_ALL
permissões, essa política concederá permissões para executar todos os comandos do PartiQL em qualquer tabela no ledger.
Você também pode usar uma política AWS gerenciada para conceder acesso total a todos os QLDB recursos. Para obter mais informações, consulte AWS políticas gerenciadas para a Amazon QLDB.
Permissões padrão para ações do PartiQL e recursos de tabela
Para livros contábeis no modo de STANDARD
permissões, você pode consultar os seguintes documentos de IAM política como exemplos de concessão das permissões partiQL apropriadas. Para obter uma lista das permissões necessárias para cada comando do PartiQL, consulte as Referência de permissões PartiQL.
Tópicos
Permitir acesso total a todas as ações
O documento JSON de política a seguir concede acesso total para usar todos os comandos do PartiQL em todas as tabelas do. myExampleLedger
Essa política produz o mesmo efeito do uso do modo de ALLOW_ALL
permissões para o ledger.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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" ] } ] }
Acesso total a todas as ações com base nas tags da tabela
O documento JSON de política a seguir usa uma condição baseada nas tags de recursos da tabela para conceder acesso total ao uso de todos os comandos do PartiQL em todas as tabelas do. myExampleLedger
As permissões são concedidas somente se a tag da tabela environment
tiver o valor development
.
Atenção
Este é um exemplo do uso de um caractere curinga (*) para permitir todas as ações do PartiQL, incluindo operações administrativas e de leitura/gravação em todas as tabelas em um livro contábil. QLDB Em vez disso, é uma prática recomendada especificar explicitamente cada ação a ser concedida, e apenas o que esse usuário, função ou grupo precisa.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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" } } } ] }
Acesso de leitura/gravação
O documento JSON de política a seguir concede permissões para selecionar, inserir, atualizar e excluir dados em todas as tabelas domyExampleLedger
. Essa política não concede permissões para redigir dados ou alterar o esquema, por exemplo, criar e eliminar tabelas e índices.
nota
Uma UPDATE
declaração exige permissões para as ações qldb:PartiQLUpdate
e qldb:PartiQLSelect
da tabela que está sendo modificada. Quando você executa uma instrução UPDATE
, ela executa uma operação de leitura além da operação de atualização. A exigência de ambas as ações garante que somente os usuários que têm permissão para ler o conteúdo de uma tabela recebam permissões UPDATE
.
Da mesma forma, uma declaração DELETE
exige permissões para as ações qldb:PartiQLDelete
e qldb:PartiQLSelect
.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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" ] } ] }
Acesso somente leitura
O documento JSON de política a seguir concede permissões somente para leitura em todas as tabelas do. myExampleLedger
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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" ] } ] }
Acesso somente leitura a uma tabela específica
O documento JSON de política a seguir concede permissões somente para leitura em uma tabela específica em. myExampleLedger
Nesse exemplo, o ID da tabela é Au1EiThbt8s0z9wM26REZN
.
Para usar essa política, substitua us-east-1
,
123456789012
,
myExampleLedger
e Au1EiThbt8s0z9wM26REZN
no exemplo com suas próprias informações.
{ "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
" ] } ] }
Permitir acesso para criar tabelas
O documento JSON de política a seguir concede permissão para criar tabelas emmyExampleLedger
. A ação qldb:PartiQLCreateTable
requer permissões para o tipo de recurso da tabela. No entanto, o ID da tabela nova não é conhecido no momento em que você executa uma instrução CREATE TABLE
. Portanto, uma política que concede a qldb:PartiQLCreateTable
permissão deve usar um caractere curinga (*) na tabela ARN para especificar o recurso.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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/*" ] } ] }
Permitir acesso para criar tabelas com base nas tags de solicitação
O documento JSON de política a seguir usa uma condição baseada na chave de aws:RequestTag
contexto para conceder permissão para criar tabelas emmyExampleLedger
. As permissões são concedidas somente se a tag de solicitação environment
tiver o valor development
. Marcar tabelas na criação requer acesso às ações qldb:PartiQLCreateTable
e qldb:TagResource
. Para saber como marcar tabelas na criação de tags, consulte Tabelas de marcação.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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" } } } ] }
Exportar um diário para um bucket do Amazon S3
Etapa 1: permissões de exportação do QLDB diário
No exemplo a seguir, você concede a um usuário suas Conta da AWS permissões para realizar a qldb:ExportJournalToS3
ação em um recurso QLDB contábil. Você também concede permissões para realizar a iam:PassRole
ação no recurso de IAM função que deseja passar para o QLDB serviço. Isso é necessário para todas as solicitações de exportação de diário.
Para usar essa política, substitua us-east-1
,
123456789012
,
myExampleLedger
e qldb-s3-export
no exemplo com suas próprias informações.
{ "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" } } } ] }
Etapa 2: Permissões do Amazon S3 bucket
No exemplo a seguir, você usa uma IAM função para conceder QLDB acesso à gravação em um dos seus buckets do Amazon S3,. amzn-s3-demo-bucket
Isso também é necessário para todas as exportações de QLDB periódicos.
Além de conceder a s3:PutObject
permissão, a política também concede a s3:PutObjectAcl
permissão para definir as permissões da lista de controle de acesso (ACL) para um objeto.
Para usar essa política, substitua amzn-s3-demo-bucket no exemplo pelo nome do seu 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/*" } ] }
Em seguida, você anexa essa política de permissões a uma IAM função que QLDB pode assumir para acessar seu bucket do Amazon S3. O JSON documento a seguir é um exemplo de uma política de confiança que QLDB permite assumir a IAM função de qualquer QLDB recurso 123456789012
somente na conta.
Para usar essa política, substitua us-east-1
e 123456789012
no exemplo com suas próprias informações.
{ "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
" } } } ] }
Fluxo de um diário para o Kinesis Data Streams
Etapa 1: permissões do stream do QLDB diário
No exemplo a seguir, você concede a um usuário suas Conta da AWS permissões para realizar a qldb:StreamJournalToKinesis
ação em todos os sub-recursos do QLDB stream em um livro contábil. Você também concede permissões para realizar a iam:PassRole
ação no recurso de IAM função que deseja passar para o QLDB serviço. Isso é necessário para todas as solicitações de fluxos de diário.
Para usar essa política, substitua us-east-1
,
123456789012
,
myExampleLedger
e qldb-kinesis-stream
no exemplo com suas próprias informações.
{ "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" } } } ] }
Etapa 2: permissões do Kinesis Data Streams
No exemplo a seguir, você usa uma IAM função para conceder QLDB acesso para gravar registros de dados em seu stream de dados do Amazon Kinesis, stream-for-qldb
. Isso também é necessário para todos os fluxos de QLDB diários.
Para usar essa política, substitua us-east-1
,
123456789012
e stream-for-qldb
no exemplo com suas próprias informações.
{ "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
" } ] }
Em seguida, você anexa essa política de permissões a uma IAM função que QLDB pode assumir para acessar seu stream de dados do Kinesis. O JSON documento a seguir é um exemplo de uma política de confiança que QLDB permite assumir uma IAM função em qualquer QLDB fluxo na conta myExampleLedger
somente 123456789012
para o livro contábil.
Para usar essa política, substitua us-east-1
,
123456789012
e myExampleLedger
no exemplo com suas próprias informações.
{ "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
" } } } ] }
Atualizando QLDB livros contábeis com base em etiquetas
Você pode usar condições em sua política baseada em identidade para controlar o acesso aos QLDB recursos com base em tags. Este exemplo mostra como é possível criar uma política que permite atualizar um ledger. No entanto, a permissão é concedida somente se a tag do ledger Owner
tiver o valor do nome de usuário desse usuário. Essa política também concede as permissões necessárias concluir essa ação no 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}"} } } ] }
Você pode anexar essa política aos usuários na sua conta. Se um usuário chamado richard-roe
tentar atualizar um QLDB livro contábil, o livro contábil deverá estar marcado com Owner=richard-roe
ou. owner=richard-roe
Caso contrário, ele terá o acesso negado. A chave da tag de condição Owner
corresponde a Owner
e a owner
porque os nomes de chaves de condição não diferenciam letras maiúsculas de minúsculas. Para obter mais informações, consulte Elementos IAM JSON da política: Condição no Guia IAM do usuário.