Você pode usar o AWS Identity and Access Management (IAM) para restringir as ações de backup e restauração do Amazon DynamoDB a alguns recursos. As APIs CreateBackup
e RestoreTableFromBackup
operam por tabela.
Para obter mais informações sobre como usar as políticas do IAM no DynamoDB, consulte Políticas baseadas em identidade para o DynamoDB.
Veja a seguir exemplos de políticas do IAM que você pode usar para configurar funcionalidades específicas de backup e restauração no DynamoDB.
Exemplo 1: permitir ações CreateBackup e RestoreTableFromBackup
Esta política do IAM concede permissões para execução das ações CreateBackup
e RestoreTableFromBackup
do DynamoDB em todas as tabelas:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:CreateBackup",
"dynamodb:RestoreTableFromBackup",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:BatchWriteItem"
],
"Resource": "*"
}
]
}
Importante
As permissões RestoreTableFromBackup do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração.
As permissões RestoreTableToPointInTime do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração.
Exemplo 2: permitir CreateBackup e negar RestoreTableFromBackup
Esta política do IAM concede permissões para a ação CreateBackup
e nega a ação RestoreTableFromBackup
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["dynamodb:CreateBackup"],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": ["dynamodb:RestoreTableFromBackup"],
"Resource": "*"
}
]
}
Exemplo 3: permitir ListBackups e negar CreateBackup e RestoreTableFromBackup
Esta política do IAM concede permissões para a ação ListBackups
e recusa as ações CreateBackup
e RestoreTableFromBackup
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["dynamodb:ListBackups"],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"dynamodb:CreateBackup",
"dynamodb:RestoreTableFromBackup"
],
"Resource": "*"
}
]
}
Exemplo 4: permitir ListBackups e negar DeleteBackup
Esta política do IAM concede permissões para a ação ListBackups
e nega a ação DeleteBackup
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["dynamodb:ListBackups"],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": ["dynamodb:DeleteBackup"],
"Resource": "*"
}
]
}
Exemplo 5: permitir RestoreTableFromBackup e DescribeBackup para todos os recursos e recusar DeleteBackup para um backup específico
Esta política do IAM concede permissões para as ações RestoreTableFromBackup
e DescribeBackup
e nega a ação DeleteBackup
para um recurso de backup específico:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:DescribeBackup",
"dynamodb:RestoreTableFromBackup",
],
"Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d"
},
{
"Effect": "Allow",
"Action": [
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:Query",
"dynamodb:Scan",
"dynamodb:BatchWriteItem"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"dynamodb:DeleteBackup"
],
"Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d"
}
]
}
Importante
As permissões RestoreTableFromBackup do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração.
As permissões RestoreTableToPointInTime do DynamoDB são necessárias no backup de origem, e as de leitura e gravação do DynamoDB na tabela de destino são necessárias para a funcionalidade de restauração.
Exemplo 6: permitir CreateBackup para uma tabela específica
Esta política do IAM concede permissões para a ação CreateBackup
somente na tabela Movies
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["dynamodb:CreateBackup"],
"Resource": [
"arn:aws:dynamodb:us-east-1:123456789012:table/Movies"
]
}
]
}
Exemplo 7: permitir ListBackups
Esta política do IAM concede permissões para a ação ListBackups
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["dynamodb:ListBackups"],
"Resource": "*"
}
]
}
}
Importante
Não é possível conceder permissões para a ação ListBackups
em uma tabela específica.
Exemplo 8: permitir acesso a características do AWS Backup
Você precisará de permissões de API para a ação StartAwsBackupJob
para obter um backup bem-sucedido com recursos avançados, e a ação dynamodb:RestoreTableFromAwsBackup
para restaurar esse backup com êxito.
A seguinte política do IAM concede ao AWS Backup as permissões para acionar backups com recursos avançados e restaurações. Observe também que, se as tabelas forem criptografadas, a política precisará de acesso à chave do KMS da AWS.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DescribeQueryScanBooksTable",
"Effect": "Allow",
"Action": [
"dynamodb:StartAwsBackupJob",
"dynamodb:DescribeTable",
"dynamodb:Query",
"dynamodb:Scan"
],
"Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Books"
},
{
"Sid": "AllowRestoreFromAwsBackup",
"Effect": "Allow",
"Action": ["dynamodb:RestoreTableFromAwsBackup"],
"Resource": "*"
},
]
}
Exemplo 9: negar RestoreTableToPointInTime para uma tabela de origem específica
A seguinte política do IAM nega permissões para a ação RestoreTableToPointInTime
a uma tabela de origem específica:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"dynamodb:RestoreTableToPointInTime"
],
"Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music"
}
]
}
Exemplo 10: negar RestoreTableFromBackup para uma tabela de origem específica
A seguinte política do IAM nega permissões para a ação RestoreTableToPointInTime
a todos os backups de uma tabela de origem específica:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"dynamodb:RestoreTableFromBackup"
],
"Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/*"
}
]
}