Usar o IAM com tabelas globais - Amazon DynamoDB

Usar o IAM com tabelas globais

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 e permite que o DynamoDB gerencie a replicação em tabelas globais entre regiões em seu nome. Não exclua essa função vinculada ao serviço. Se fizer isso, todas as suas tabelas globais não funcionarão mais.

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" ] } ] }