AWS::DynamoDB::GlobalTable ResourcePolicy - AWS CloudFormation

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS::DynamoDB::GlobalTable ResourcePolicy

Crea o actualiza un documento de política basado en recursos que contiene los permisos de los DynamoDB recursos, como una tabla, sus índices y su transmisión. Las políticas basadas en recursos permiten definir los permisos de acceso especificando quién tiene acceso a cada recurso y las acciones que puede realizar en cada recurso.

En una CloudFormation plantilla, puedes proporcionar la política en formato JSON o YAML, ya que CloudFormation convierte YAML en JSON antes de enviarla a ella. DynamoDBPara obtener más información sobre las políticas basadas en recursos, consulta Uso de políticas basadas en recursos y ejemplos de políticas basadas en recursos. DynamoDB

Al definir las políticas basadas en los recursos en las plantillas, se deben tener en cuenta las siguientes consideraciones: CloudFormation

  • El tamaño máximo admitido para un documento de política basado en recursos en formato JSON es de 20 KB. DynamoDB cuenta los espacios en blanco al calcular el tamaño de una política con respecto a este límite.

  • Las políticas basadas en recursos no admiten la detección de desviaciones. Si actualizas una política fuera de la plantilla de CloudFormation pila, tendrás que actualizar la CloudFormation pila con los cambios.

  • Las políticas basadas en recursos no admiten out-of-band cambios. Si agregas, actualizas o eliminas una política fuera de la CloudFormation plantilla, el cambio no se sobrescribirá si no hay cambios en la política de la plantilla.

    Por ejemplo, supongamos que la plantilla contiene una política basada en recursos, que luego se actualiza fuera de la plantilla. Si no realizas ningún cambio en la política de la plantilla, la política actualizada DynamoDB no se sincronizará con la política de la plantilla.

    Por el contrario, supongamos que tu plantilla no contiene una política basada en recursos, pero agregas una política externa a la plantilla. Esta política no se eliminará DynamoDB mientras no la agregues a la plantilla. Al añadir una política a la plantilla y actualizar la pila, la política existente se DynamoDB actualizará para que coincida con la definida en la plantilla.

  • En una política basada en recursos, si se deniega la acción para que un rol DynamoDB vinculado a un servicio (SLR) replique los datos de una tabla global, no se podrá añadir o eliminar una réplica y se generará un error.

  • El GlobalTable recurso AWS: :DynamoDB:: no admite la creación de una réplica en la misma actualización de pila en regiones distintas de la región en la que se implementa la actualización de pila.

Para obtener una lista completa de todas las consideraciones, consulte Consideraciones políticas basadas en los recursos.

Sintaxis

Para declarar esta entidad en la AWS CloudFormation plantilla, utilice la siguiente sintaxis:

JSON

{ "PolicyDocument" : Json }

YAML

PolicyDocument: Json

Propiedades

PolicyDocument

Documento de política basado en recursos que contiene permisos para añadir elementos a la DynamoDB tabla especificada, sus índices y su flujo. En una CloudFormation plantilla, puedes proporcionar la política en formato JSON o YAML, ya que CloudFormation convierte YAML en JSON antes de enviarla a ella. DynamoDBPara obtener más información sobre las políticas basadas en recursos, consulta Uso de políticas basadas en recursos y ejemplos de políticas basadas en recursos. DynamoDB

Obligatorio: sí

Tipo: JSON

Requisitos de actualización: sin interrupción

Ejemplos

Adjuntar una política basada en recursos a una tabla creada con el recurso. DynamoDB AWS::DynamoDB::GlobalTable

La siguiente CloudFormation plantilla crea una tabla con el GlobalTable recurso AWS: :DynamoDB:: y adjunta una política basada en recursos a la tabla y a su transmisión. Esta política permite al usuario realizar la operación en foobar la tabla. GetItem Además, la siguiente plantilla habilita una transmisión y, a continuación, adjunta una política basada en recursos a la transmisión. La política basada en los recursos de la transmisión permite foobar al usuario realizar las operaciones GetRecordsGetShardIterator, y DescribeStreamen la transmisión.

importante

Si habilita una transmisión dentro de una CloudFormation plantilla y también define una política para la transmisión, la política se adjunta a la transmisión solo después de que la transmisión esté habilitada, pero antes de que se complete la actualización de la pila.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "GlobalMusicCollection": { "Type": "AWS::DynamoDB::GlobalTable", "Properties": { "TableName": "MusicCollection", "AttributeDefinitions": [{ "AttributeName": "Artist", "AttributeType": "S" }], "KeySchema": [{ "AttributeName": "Artist", "KeyType": "HASH" }], "BillingMode": "PAY_PER_REQUEST", "StreamSpecification": { "StreamViewType": "NEW_AND_OLD_IMAGES" }, "Replicas": [ { "Region": "us-east-1", "ResourcePolicy": { "PolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/foobar" ] }, "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "*" }] } }, "ReplicaStreamSpecification": { "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": "*" }] } } } } ] } } } }