AWS::DynamoDB::Table ResourcePolicy - AWS CloudFormation

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á.

AWS::DynamoDB::Table ResourcePolicy

Cria ou atualiza um documento de política baseado em recursos que contém as permissões para DynamoDB recursos, como uma tabela, seus índices e fluxo. As políticas baseadas em recursos permitem definir permissões de acesso especificando quem tem acesso a cada recurso e as ações que eles podem realizar em cada recurso.

Em um CloudFormation modelo, você pode fornecer a política no formato JSON ou YAML porque CloudFormation converte YAML em JSON antes de enviá-la. DynamoDBPara obter mais informações sobre políticas baseadas em recursos, consulte Usando políticas baseadas em recursos DynamoDB e Exemplos de políticas baseadas em recursos.

Ao definir políticas baseadas em recursos em seus CloudFormation modelos, as seguintes considerações se aplicam:

  • O tamanho máximo suportado para um documento de política baseado em recursos no formato JSON é de 20 KB. DynamoDB conta os espaços em branco ao calcular o tamanho de uma política em relação a esse limite.

  • As políticas baseadas em recursos não oferecem suporte à detecção de desvios. Se você atualizar uma política fora do modelo de CloudFormation pilha, precisará atualizar a CloudFormation pilha com as alterações.

  • As políticas baseadas em recursos não oferecem suporte out-of-band a mudanças. Se você adicionar, atualizar ou excluir uma política fora do CloudFormation modelo, a alteração não será substituída se não houver alterações na política dentro do modelo.

    Por exemplo, digamos que seu modelo contenha uma política baseada em recursos, que você atualiza posteriormente fora do modelo. Se você não fizer nenhuma alteração na política no modelo, a política atualizada DynamoDB não será sincronizada com a política no modelo.

    Por outro lado, digamos que seu modelo não contenha uma política baseada em recursos, mas você adiciona uma política fora do modelo. Essa política não será removida DynamoDB desde que você não a adicione ao modelo. Quando você adiciona uma política ao modelo e atualiza a pilha, a política existente DynamoDB será atualizada para corresponder à definida no modelo.

Para obter uma lista completa de todas as considerações, consulte Considerações sobre políticas baseadas em recursos.

Sintaxe

Para declarar essa entidade em seu AWS CloudFormation modelo, use a seguinte sintaxe:

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

Propriedades

PolicyDocument

Um documento de política baseado em recursos que contém permissões para adicionar à DynamoDB tabela, índice ou ambos especificados. Em um CloudFormation modelo, você pode fornecer a política no formato JSON ou YAML porque CloudFormation converte YAML em JSON antes de enviá-la. DynamoDBPara obter mais informações sobre políticas baseadas em recursos, consulte Usando políticas baseadas em recursos DynamoDB e Exemplos de políticas baseadas em recursos.

Obrigatório: Sim

Tipo: Json

Requisitos da atualização: sem interrupção

Exemplos

Anexar uma política baseada em recursos a uma DynamoDB tabela e seu fluxo

O CloudFormation modelo a seguir cria uma tabela chamada MusicCollectionTable e anexa uma política baseada em recursos a essa tabela. Essa política permite que foobar o usuário execute a GetItemoperação na mesa. Além disso, o modelo a seguir ativa um fluxo e, em seguida, anexa uma política baseada em recursos ao fluxo. A política baseada em recursos para o fluxo permite que foobar o usuário execute as DescribeStreamoperações GetRecordsGetShardIterator, e no fluxo.

Importante

Se você habilitar um stream em um CloudFormation modelo e também definir uma política para o stream, a política será anexada ao stream somente depois que o stream for habilitado, mas antes que a atualização da pilha seja concluída.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MusicCollectionTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" } ], "BillingMode": "PROVISIONED", "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "StreamSpecification": { "StreamViewType": "OLD_IMAGE", "ResourcePolicy": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/foobar" }, "Effect": "Allow", "Action": [ "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream" ], "Resource": "*" } ] } } }, "TableName": "MusicCollection", "ResourcePolicy": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/foobar" ] }, "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "*" } ] } } } } } }