Usar o IAM com tabelas globais do DynamoDB
Na primeira vez que você cria uma tabela global, o Amazon DynamoDB cria automaticamente para você uma função vinculada ao serviço do AWS Identity and Access Management (IAM). Essa função é chamada AWSServiceRoleForDynamoDBReplication
Para obter mais informações sobre funções vinculadas a serviços, consulte Usando funções vinculadas a serviços no Guia do Usuário do IAM.
Para criar tabelas-réplica no DynamoDB, é necessário ter as permissões a seguir na região de origem.
-
dynamodb:UpdateTable
Para criar tabelas-réplica no DynamoDB, é necessário ter as permissões a seguir nas regiões de destino.
-
dynamodb:CreateTable
-
dynamodb:CreateTableReplica
-
dynamodb:Scan
-
dynamodb:Query
-
dynamodb:UpdateItem
-
dynamodb:PutItem
-
dynamodb:GetItem
-
dynamodb:DeleteItem
-
dynamodb:BatchWriteItem
Para excluir tabelas-réplica no DynamoDB, é necessário ter as permissões a seguir nas regiões de destino.
-
dynamodb:DeleteTable
-
dynamodb:DeleteTableReplica
Para atualizar a política de ajuste de escala automático da réplica usando UpdateTableReplicaAutoScaling
, é necessário ter as permissões a seguir em todas as regiões onde existam réplicas da tabela.
-
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
, é necessário ter permissão para dynamodb:UpdateTimeToLive
em todas as regiões onde existam réplicas da tabela.
Exemplo: adicionar réplica
A política do IAM a seguir concede permissões para você adicionar réplicas a uma tabela global.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:CreateTableReplica", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }
Exemplo: atualizar a política de escalabilidade automática
A política do IAM a seguir concede permissões para que você atualize a política de ajuste de escala automático da réplica.
{ "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": "*" } ] }
Exemplo: permitir criações de réplicas para um nome de uma tabela e regiões específicas
A política do IAM a seguir concede permissões para a criação de tabelas e de réplicas para a tabela Customers
com réplicas em três regiões.
{ "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" ] } ] }