Na primeira vez que você habilitar o Amazon Kinesis Data Streams para Amazon DynamoDB, o DynamoDB criará automaticamente uma função vinculada ao serviço do AWS Identity and Access Management (IAM) para você. Esta função, AWSServiceRoleForDynamoDBKinesisDataStreamsReplication
, permite que o DynamoDB gerencie a replicação de alterações em nível de item no Kinesis Data Streams em seu nome. Não exclua essa função vinculada ao serviço.
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.
nota
O DynamoDB não oferece suporte a condições baseadas em etiqueta para políticas do IAM.
Para habilitar o Amazon Kinesis Data Streams para o Amazon DynamoDB, é necessário ter as seguintes permissões na tabela:
-
dynamodb:EnableKinesisStreamingDestination
-
kinesis:ListStreams
-
kinesis:PutRecords
-
kinesis:DescribeStream
A fim de descrever o Amazon Kinesis Data Streams para Amazon DynamoDB para determinada tabela do DynamoDB, é necessário ter as permissões a seguir na tabela.
-
dynamodb:DescribeKinesisStreamingDestination
-
kinesis:DescribeStreamSummary
-
kinesis:DescribeStream
A fim de desabilitar o Amazon Kinesis Data Streams para o Amazon DynamoDB, é necessário ter permissões a seguir na tabela.
-
dynamodb:DisableKinesisStreamingDestination
Para atualizar o Amazon Kinesis Data Streams para o Amazon DynamoDB, é necessário ter as permissões a seguir na tabela.
-
dynamodb:UpdateKinesisStreamingDestination
Os exemplos a seguir mostram como usar políticas do IAM para conceder permissões para o Amazon Kinesis Data Streams para Amazon DynamoDB.
Exemplo: habilitar o Amazon Kinesis Data Streams para Amazon DynamoDB
A política do IAM a seguir concede permissões para habilitar o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Music
: Ela não concede permissões para desabilitar, atualizar ou descrever o Kinesis Data Streams para o DynamoDB na tabela Music
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/kinesisreplication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBKinesisDataStreamsReplication",
"Condition": {"StringLike": {"iam:AWSServiceName": "kinesisreplication.dynamodb.amazonaws.com"}}
},
{
"Effect": "Allow",
"Action": [
"dynamodb:EnableKinesisStreamingDestination"
],
"Resource": "arn:aws:dynamodb:us-west-2:12345678901:table/Music"
}
]
}
Exemplo: Atualizar o Amazon Kinesis Data Streams para o Amazon DynamoDB
A política do IAM a seguir concede permissões para atualizar o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Music
: Ela não concede permissões para habilitar, desabilitar ou descrever o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Music
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:UpdateKinesisStreamingDestination"
],
"Resource": "arn:aws:dynamodb:us-west-2:12345678901:table/Music"
}
]
}
Exemplo: desabilitar o Amazon Kinesis Data Streams para Amazon DynamoDB
A política do IAM a seguir concede permissões para desabilitar o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Music
: Ela não concede permissões para habilitar, atualizar ou descrever o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Music
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:DisableKinesisStreamingDestination"
],
"Resource": "arn:aws:dynamodb:us-west-2:12345678901:table/Music"
}
]
}
Exemplo: aplicar seletivamente permissões para o Amazon Kinesis Data Streams para Amazon DynamoDB com base no recurso
A política do IAM a seguir concede permissões para habilitar e descrever o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Music
e nega permissões para desabilitar o Amazon Kinesis Data Streams para o Amazon DynamoDB na tabela Orders
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:EnableKinesisStreamingDestination",
"dynamodb:DescribeKinesisStreamingDestination"
],
"Resource": "arn:aws:dynamodb:us-west-2:12345678901:table/Music"
},
{
"Effect": "Deny",
"Action": [
"dynamodb:DisableKinesisStreamingDestination"
],
"Resource": "arn:aws:dynamodb:us-west-2:12345678901:table/Orders"
}
]
}
Usar funções vinculadas ao serviço para o Kinesis Data Streams para DynamoDB
O Amazon Kinesis Data Streams para Amazon DynamoDB usa funções vinculadas ao serviço do AWS Identity and Access Management (IAM). A função vinculada ao serviço é um tipo exclusivo de perfil do IAM vinculada diretamente ao Kinesis Data Streams para DynamoDB. As funções vinculadas a serviços são predefinidas pelo Kinesis Data Streams para DynamoDB e incluem todas as permissões que o serviço requer para chamar outros serviços da AWS em seu nome.
Uma função vinculada ao serviço facilita a configuração do Kinesis Data Streams para DynamoDB porque você não precisa adicionar as permissões necessárias manualmente. O Kinesis Data Streams para DynamoDB define as permissões de suas funções vinculadas a serviços e, exceto se definido de outra forma, somente o Kinesis Data Streams para DynamoDB pode assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, que não pode ser anexada a nenhuma outra entidade do IAM.
Para obter informações sobre outros serviços compatíveis com funções vinculadas a serviços, consulte Serviços da AWS compatíveis com o IAM e procure os serviços que contenham Sim na coluna Função vinculada ao serviço. Escolha um Sim com um link para visualizar a documentação da função vinculada a esse serviço.
Permissões de função vinculada ao serviço para o Kinesis Data Streams para DynamoDB
O Kinesis Data Streams para DynamoDB usa a função vinculada ao serviço chamada AWSServiceRoleForDynamoDBKinesisDataStreamsReplication. O objetivo dessa função vinculada ao serviço é permitir que o Amazon DynamoDB gerencie a replicação de alterações em nível de item no Kinesis Data Streams em seu nome.
O perfil vinculado ao serviço AWSServiceRoleForDynamoDBKinesisDataStreamsReplication
confia nos seguintes serviços para aceitar o perfil:
-
kinesisreplication.dynamodb.amazonaws.com
A política de permissões da função permite que o Kinesis Data Streams for DynamoDB conclua as seguintes ações nos recursos especificados:
-
Ação:
Put records and describe
emKinesis stream
-
Ação:
Generate data keys
noAWS KMS
para colocar dados em fluxos do Kinesis que são criptografados usando chaves do AWS KMS geradas pelo usuário.
Para obter o conteúdo exato do documento de política, consulte DynamoDBKinesisReplicationServiceRolePolicy
Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo ou função) crie, edite ou exclua um perfil vinculado a serviço. Para mais informações, consulte Permissões de perfil vinculado ao serviço no Guia do usuário do IAM.
Criar uma função vinculada ao serviço para o Kinesis Data Streams para DynamoDB
Não é necessário criar manualmente uma função vinculada ao serviço. Quando você habilita o Kinesis Data Streams para DynamoDB no AWS Management Console, na AWS CLI ou na API da AWS, o Kinesis Data Streams para DynamoDB cria a função vinculada ao serviço para você.
Se excluir essa função vinculada ao serviço e precisar criá-la novamente, você poderá usar esse mesmo processo para recriar a função em sua conta. Quando você habilita o Kinesis Data Streams para DynamoDB, o Kinesis Data Streams para DynamoDB cria a função vinculada ao serviço para você.
Editar uma função vinculada ao serviço para o Kinesis Data Streams para DynamoDB
O Kinesis Data Streams para DynamoDB não permite editar a função vinculada ao serviço AWSServiceRoleForDynamoDBKinesisDataStreamsReplication
. Depois que criar um perfil vinculado ao serviço, você não poderá alterar o nome do perfil, pois várias entidades podem fazer referência a ele. No entanto, será possível editar a descrição do perfil usando o IAM. Para obter mais informações, consulte Editar uma função vinculada a serviço no Guia do usuário do IAM.
Excluir uma função vinculada ao serviço para o Kinesis Data Streams para DynamoDB
Também é possível usar o console do IAM, a AWS CLI ou a API da AWS para excluir manualmente a função vinculada ao serviço. Para isso, primeiro você deve limpar manualmente os recursos de sua função vinculada ao serviço e depois excluí-la manualmente.
nota
Se o serviço Kinesis Data Streams para DynamoDB estiver usando a função quando você tenta excluir os recursos, a exclusão poderá falhar. Se isso acontecer, espere alguns minutos e tente a operação novamente.
Como excluir manualmente o perfil vinculado ao serviço usando o IAM
Use o console do IAM, a AWS CLI ou a API da AWS para excluir a função vinculada ao serviço AWSServiceRoleForDynamoDBKinesisDataStreamsReplication
. Para obter mais informações, consulte Excluir uma função vinculada ao serviço no Guia do usuário do IAM.