Usar o IAM com tabelas globais - Amazon DynamoDB

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

Usar o IAM com tabelas globais

Importante

Esta documentação, destinada à versão 2017.11.29 (herdada) de tabelas globais, deve ser evitada para novas tabelas globais. Os clientes devem usar a versão 2019.11.21 (atual) do Global Tables sempre que possível, pois ela oferece maior flexibilidade, maior eficiência e consome menos capacidade de gravação do que a versão 2017.11.29 (Legacy).

Para determinar qual versão você está usando, consulte Determinar a versão da tabela global que você está usando. Para atualizar tabelas globais existentes da versão 2017.11.29 (herdada) para a versão 2019.11.21 (atual), consulte Atualizar as 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 e manter tabelas globais no DynamoDB, é preciso ter permissão dynamodb:CreateGlobalTable para acessar cada um dos itens a seguir:

  • A tabela-réplica que você deseja adicionar.

  • Toda réplica existente que já faça parte da tabela global.

  • A própria tabela global.

Para atualizar as configurações (UpdateGlobalTableSettings) para uma tabela global no DynamoDB, você deve ter as permissões dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy e application-autoscaling:DeregisterScalableTarget.

As permissões application-autoscaling:DeleteScalingPolicy e application-autoscaling:DeregisterScalableTarget são necessárias ao atualizar uma política de dimensionamento existente. Isso ocorre para que o serviço de tabelas globais possa remover a política de dimensionamento antiga antes de anexar a nova política à tabela ou ao índice secundário.

Se você usar uma política do IAM para gerenciar o acesso a uma tabela-réplica, deverá aplicar uma política idêntica a todas as outras réplicas dentro da tabela global. Esse procedimento ajuda você a manter um modelo de permissões consistente em todas as tabelas-réplica.

Ao usar políticas idênticas do IAM em todas as réplicas em uma tabela global, você também pode evitar a concessão não intencional de acesso de leitura e gravação a seus dados na tabela global. Por exemplo, considere um usuário que tem acesso a uma única réplica em uma tabela global. Se esse usuário puder gravar nessa réplica, o DynamoDB propagará a gravação para todas as outras tabelas-réplica. Na verdade, o usuário poderá gravar (indiretamente) em todas as outras réplicas na tabela global. Essa situação pode ser evitada usando políticas consistentes do IAM em todas as tabelas-réplica.

Exemplo: permitir a CreateGlobalTable ação

Para adicionar uma réplica a uma tabela global, você precisa ter a permissão dynamodb:CreateGlobalTable para a tabela global e para cada uma de suas tabelas-réplica.

A política do IAM a seguir concede permissões para a ação CreateGlobalTable em todas as tabelas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateGlobalTable"], "Resource": "*" } ] }

Exemplo: permitir as ações UpdateGlobalTable, DescribeLimits, escalonamento automático do aplicativo: e escalonamento automático do aplicativo: DeleteScalingPolicy DeregisterScalableTarget

Para atualizar as configurações (UpdateGlobalTableSettings) para uma tabela global no DynamoDB, você deve ter as permissões dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy e application-autoscaling:DeregisterScalableTarget.

A política do IAM a seguir concede permissões para a ação UpdateGlobalTableSettings em todas as tabelas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:UpdateGlobalTable", "dynamodb:DescribeLimits", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }

Exemplo: permitir a CreateGlobalTable ação para um nome de tabela global específico com réplicas permitidas somente em determinadas regiões

A política do IAM a seguir concede permissões para permitir que a ação CreateGlobalTable crie uma tabela global chamada Customers com réplicas em duas regiões.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:CreateGlobalTable", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Customers", "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers" ] } ] }