Uso de IAM con tablas globales - Amazon DynamoDB

Uso de IAM con tablas globales

Cuando se crea una tabla global por primera vez, Amazon DynamoDB crea automáticamente un rol vinculado al servicio AWS Identity and Access Management (IAM). Este rol se denomina AWSServiceRoleForDynamoDBReplication y permite que DynamoDB administre la replicación entre regiones de las tablas globales. No elimine este rol vinculado a un servicio. Si lo hace, las tablas globales dejarán de funcionar.

Para obtener más información acerca los roles vinculados a servicios, consulte Uso de roles vinculados a servicios en la Guía del usuario de IAM.

Para crear réplicas de tabla en DynamoDB, debe tener los siguientes permisos en la región de origen.

  • dynamodb:UpdateTable

Para crear réplicas de tablas en DynamoDB, debe tener los siguientes permisos en las regiones de destino.

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

  • dynamodb:Scan

  • dynamodb:Query

  • dynamodb:UpdateItem

  • dynamodb:PutItem

  • dynamodb:GetItem

  • dynamodb:DeleteItem

  • dynamodb:BatchWriteItem

Para eliminar réplicas de tabla en DynamoDB, debe tener los siguientes permisos en las regiones de destino.

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

Para actualizar la política de escalado automático de réplicas mediante UpdateTableReplicaAutoScaling, debe tener los siguientes permisos en todas las regiones donde haya tablas de réplica.

  • application-autoscaling:DeleteScalingPolicy

  • application-autoscaling:DeleteScheduledAction

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DescribeScalingActivities

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DescribeScheduledActions

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:PutScheduledAction

  • application-autoscaling:RegisterScalableTarget

Para usar UpdateTimeToLive, debe tener permisos para dynamodb:UpdateTimeToLive en todas las regiones donde haya réplicas.

Ejemplo: adición de réplica

La siguiente política de IAM concede permisos para permitirle añadir réplicas a una tabla global.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:CreateTableReplica", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }

Ejemplo: Actualización de la política de escalado automático

La siguiente política de IAM concede permisos para permitirle actualizar la política de escalado automático de réplicas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "application-autoscaling:RegisterScalableTarget", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }

Ejemplo: permitir creaciones de réplicas para un nombre de tabla específico y determinadas regiones

La siguiente política de IAM concede permisos para permitir la creación de tablas y réplicas para la tabla Customers con réplicas en tres regiones.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers", "arn:aws:dynamodb:eu-east-2:123456789012:table/Customers" ] } ] }