AWS Database Migration Service exemplos de políticas baseadas em identidade - AWS Database Migration Service

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

AWS Database Migration Service exemplos de políticas baseadas em identidade

Por padrão, IAM usuários e funções não têm permissão para criar ou modificar AWS DMS recursos. Eles também não podem realizar tarefas usando o AWS Management Console, AWS CLI, ou AWS API. Um IAM administrador deve criar IAM políticas que concedam aos usuários e funções permissão para realizar API operações específicas nos recursos especificados de que precisam. O administrador deve então anexar essas políticas aos IAM usuários ou grupos que exigem essas permissões.

Para saber como criar uma política IAM baseada em identidade usando esses exemplos de documentos JSON de política, consulte Criação de políticas na JSON guia do IAMusuário.

Melhores práticas de política

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir AWS DMS recursos em sua conta. Essas ações podem incorrer em custos para seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões aos seus usuários e cargas de trabalho, use as políticas AWS gerenciadas que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para obter mais informações, consulte políticas AWS gerenciadas ou políticas AWS gerenciadas para funções de trabalho no Guia IAM do usuário.

  • Aplique permissões com privilégios mínimos — Ao definir permissões com IAM políticas, conceda somente as permissões necessárias para realizar uma tarefa. Você faz isso definindo as ações que podem ser executadas em atributos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre IAM como usar para aplicar permissões, consulte Políticas e permissões IAM no Guia IAM do usuário.

  • Use condições nas IAM políticas para restringir ainda mais o acesso — Você pode adicionar uma condição às suas políticas para limitar o acesso a ações e recursos. Por exemplo, você pode escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usandoSSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como AWS CloudFormation. Para obter mais informações, consulte Elementos IAM JSON da política: Condição no Guia IAM do usuário.

  • Use o IAM Access Analyzer para validar suas IAM políticas e garantir permissões seguras e funcionais — o IAM Access Analyzer valida políticas novas e existentes para que as políticas sigam a linguagem da IAM política (JSON) e as melhores práticas. IAM IAMO Access Analyzer fornece mais de 100 verificações de políticas e recomendações práticas para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação da política do IAM Access Analyzer no Guia do IAM Usuário.

  • Exigir autenticação multifatorial (MFA) — Se você tiver um cenário que exija IAM usuários ou um usuário root Conta da AWS, ative MFA para obter segurança adicional. Para exigir MFA quando API as operações são chamadas, adicione MFA condições às suas políticas. Para obter mais informações, consulte Configurando o API acesso MFA protegido no Guia do IAMusuário.

Para obter mais informações sobre as melhores práticas emIAM, consulte as melhores práticas de segurança IAM no Guia IAM do usuário.

Usar o console do AWS DMS

A política a seguir fornece acesso AWS DMS, incluindo o AWS DMS console, e também especifica permissões para determinadas ações necessárias de outros serviços da Amazon, como a AmazonEC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:service:region:account:resourcetype/id" } ] }

Um detalhamento dessas permissões pode ajudá-lo a entender melhor por que cada uma é necessária para utilizar o console.

A seção a seguir é necessária para permitir que o usuário liste suas chaves do AWS KMS disponíveis e o alias para exibição no console. Essa entrada não é necessária se você souber o nome de recurso da Amazon (ARN) para a KMS chave e estiver usando somente o AWS Command Line Interface (AWS CLI).

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

A seção a seguir é obrigatória para determinados tipos de endpoint que exigem que uma função ARN seja transmitida com o endpoint. Além disso, se as AWS DMS funções necessárias não forem criadas com antecedência, o AWS DMS console poderá criar a função. Se todos os perfis forem configurados com antecedência, tudo isso será necessário em iam:GetRole e iam:PassRole. Para obter mais informações sobre funções, consulte Criando as IAM funções a serem usadas com o AWS CLI e AWS DMS API.

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

A seção a seguir é obrigatória porque AWS DMS precisa criar a EC2 instância da Amazon e configurar a rede para a instância de replicação criada. Esses recursos existem na conta do cliente, por isso, a capacidade de executar essas ações em nome do cliente é necessária.

{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

A seção a seguir é necessária para permitir que o usuário possa visualizar as métricas da instância de replicação.

{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

Esta seção é necessária para permitir que o usuário veja os logs de replicação.

{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

O AWS DMS console cria várias funções que são automaticamente anexadas à sua AWS conta quando você usa o AWS DMS console. Se você usar o AWS Command Line Interface (AWS CLI) ou o AWS DMS API para sua migração, precisará adicionar essas funções à sua conta. Para obter mais informações sobre essas funções, consulte Criando as IAM funções a serem usadas com o AWS CLI e AWS DMS API.

Para obter mais informações sobre os requisitos para usar essa política para acessar AWS DMS, consulteIAMpermissões necessárias para usar AWS DMS.

Permitir que usuários visualizem suas próprias permissões

Este exemplo mostra como você pode criar uma política que permita IAM aos usuários visualizar as políticas embutidas e gerenciadas que estão anexadas à identidade do usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando o AWS CLI ou. AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Acessar um bucket do Amazon S3

AWS DMSusa buckets do Amazon S3 como armazenamento intermediário para migração de banco de dados. Normalmente, AWS DMS gerencia buckets S3 padrão para essa finalidade. No entanto, em certos casos, especialmente quando você usa o AWS CLI ou o AWS DMSAPI, AWS DMS permite que você especifique seu próprio bucket do S3. Por exemplo, é possível especificar seu próprio bucket do S3 para migrar dados para um endpoint de destino do Amazon Redshift. Nesse caso, você precisa criar uma função com permissões com base na AmazonDMSRedshiftS3Role política AWS gerenciada.

O exemplo a seguir mostra uma versão da política AmazonDMSRedshiftS3Role. Ele permite conceder AWS DMS a um IAM usuário da sua AWS conta acesso a um dos seus buckets do Amazon S3. Ela também permite que o usuário adicione, atualize e exclua objetos.

Além de conceder as permissões s3:PutObject, s3:GetObject e s3:DeleteObject ao usuário, a política também concede as permissões s3:ListAllMyBuckets, s3:GetBucketLocation e s3:ListBucket. Estas são permissões adicionais, exigidas pelo console. Outras permissões permitem AWS DMS gerenciar o ciclo de vida do bucket. Além disso, a ação s3:GetObjectAcl é necessária para poder copiar objetos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket", "s3:DeleteBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetBucketPolicy", "s3:PutBucketPolicy", "s3:GetBucketAcl", "s3:PutBucketVersioning", "s3:GetBucketVersioning", "s3:PutLifecycleConfiguration", "s3:GetLifecycleConfiguration", "s3:DeleteBucketPolicy" ], "Resource": "arn:aws:s3:::dms-*" } ] }

Para obter mais informações sobre como criar um perfil baseado nessa política, consulte Configurações do bucket do Amazon S3.

Acessar recursos com base em tags do AWS DMS

É possível utilizar condições na política baseada em identidade para controlar o acesso aos recursos do AWS DMS com base em tags. Este exemplo mostra como você pode criar uma política que permita acesso a todos os AWS DMS endpoints. No entanto, a permissão será concedida somente se a tag de banco de dados de endpoint Owner tiver o valor do nome desse usuário.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:*:*:endpoint/*", "Condition": { "StringEquals": {"dms:endpoint-tag/Owner": "${aws:username}"} } } ] }

Você pode anexar essa política aos IAM usuários da sua conta. Se um usuário chamado richard-roe tentar acessar um AWS DMS endpoint, o banco de dados do endpoint deverá ser marcado como Owner=richard-roe ou. owner=richard-roe Caso contrário, esse usuário terá o acesso negado. A chave da tag de condição Owner corresponde a Owner e a owner porque os nomes das chaves de condição não fazem distinção entre maiúsculas e minúsculas. Para obter mais informações, consulte Elementos IAM JSON da política: Condição no Guia IAM do usuário.