Uso de funções vinculadas ao serviço para o Amazon Redshift - Amazon Redshift

Uso de funções vinculadas ao serviço para o Amazon Redshift

O Amazon Redshift usa funções do AWS Identity and Access Management (IAM) vinculadas ao serviço.. Uma função vinculada a serviço é um tipo exclusivo de função do IAM que está vinculada diretamente ao Amazon Redshift. As funções vinculadas ao serviço são predefinidas pelo Amazon Redshift e incluem todas as permissões exigidas pelo serviço para chamar os serviços da AWS em nome do cluster do Amazon Redshift.

Uma função vinculada ao serviço facilita a configuração do Amazon Redshift porque você não precisa adicionar manualmente as permissões necessárias. A função está vinculada aos casos de uso do Amazon Redshift e tem permissões predefinidas. Apenas o Amazon Redshift pode assumir a função, e apenas a função vinculada ao serviço pode usar a política de permissões predefinida. O Amazon Redshift cria um perfil vinculado ao serviço em sua conta na primeira vez que você cria um cluster ou um endpoint da VPC gerenciado pelo Redshift. É possível excluir o perfil vinculado ao serviço somente depois de excluir todos os clusters do Amazon Redshift ou os endpoints da VPC gerenciados pelo Redshift em sua conta. Isso protege os recursos do Amazon Redshift porque você não pode remover inadvertidamente as permissões necessárias para acessar os recursos.

O Amazon Redshift oferece suporte ao uso de funções vinculadas a serviços em todas as regiões onde o serviço está disponível. Para mais informações, consulte Regiões e endpoints da AWS.

Para obter informações sobre outros produtos compatíveis com funções vinculadas a serviços, consulte Serviços da AWS que funcionam com o IAM e procure serviços que tenham Yes (Sim) na coluna Service-Linked Role (Função vinculada a serviço). Escolha um Sim com um link para visualizar a documentação do perfil vinculado a esse serviço.

Permissões de função vinculadas ao serviço para Amazon Redshift

O Amazon Redshift usa a função vinculada ao serviço chamada AWSServiceRoleForRedshift — Permite que o Amazon Redshift chame serviços da AWS da em seu nome. Essa função vinculada ao serviço é anexada à seguinte política gerenciada: AmazonRedshiftServiceLinkedRolePolicy. Para atualizações dessa política, consulte Políticas gerenciadas pela AWS (predefinidas) pelo Amazon Redshift.

A função vinculada ao serviço AWSServiceRoleForRedshift confia apenas em redshift.amazonaws.com para assumir a função.

A política de permissões de função vinculada ao serviço AWSServiceRoleForRedshift permite que o Amazon Redshift conclua o seguinte em todos os recursos relacionados:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeAddress

  • ec2:AssociateAddress

  • ec2:DisassociateAddress

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:ModifyNetworkInterfaceAttribute

  • ec2:CreateVpcEndpoint

  • ec2:DeleteVpcEndpoints

  • ec2:DescribeVpcEndpoints

  • ec2:ModifyVpcEndpoint

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSecurityGroups

  • ec2:DescribeInternetGateways

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeAvailabilityZones

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • ec2:AssignIpv6Addresses

  • ec2:UnassignIpv6Addresses

Permissões para recursos de rede

As permissões a seguir possibilitam ações no Amazon EC2 para criação e gerenciamento de regras de grupos de segurança. Essas regras e grupos de segurança estão especificamente associados à etiqueta de recurso aws:RequestTag/Redshift do Amazon Redshift. Isso limita o escopo das permissões para recursos específicos do Amazon Redshift.

  • ec2:CreateSecurityGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:RevokeSecurityGroupEgress

  • ec2:RevokeSecurityGroupIngress

  • ec2:ModifySecurityGroupRules

  • ec2:DeleteSecurityGroup

Permissões para cotas de serviço

As permissões a seguir permitem que o chamador obtenha cotas de serviço.

servicequotas:GetServiceQuota

O fragmento JSON a seguir mostra o escopo da ação e do recurso para cotas de serviço.

{ "Sid": "ServiceQuotasToCheckCustomerLimits", "Effect": "Allow", "Action": [ "servicequotas:GetServiceQuota" ], "Resource": [ "arn:aws:servicequotas:*:*:ec2/L-0263D0A3", "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" ] }

Os códigos de cota são os seguintes:

  • L-0263D0A3: o código de cota para IPs elásticos da VPC do EC2.

  • L-29B6F2EB o código de cota para endpoints da VPC de interface por VPC.

Para obter mais informações, consulte as Service Quotas do AWS.

Ações para registro de auditoria

As ações listadas com o prefixo logs pertence ao registro de auditoria e aos recursos relacionados. Especificamente, a criação e o gerenciamento de grupos de logs e fluxos de logs.

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:CreateLogStream

  • logs:PutLogEvents

  • logs:DescribeLogStreams

  • logs:GetLogEvents

O JSON a seguir mostra ações e o escopo de recursos, para o Amazon Redshift, para registro de auditoria.

[ { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*" ] }, { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*" ] } ]

Para obter mais informações sobre funções vinculadas a serviço e a finalidade delas na AWS, consulte Usar funções vinculadas a serviço. Para obter mais informações sobre ações específicas e outros recursos do IAM para o Amazon Redshift, consulte Ações, recursos e chaves de condição do Amazon Redshift.

Ações para gerenciar credenciais de administrador com AWS Secrets Manager

As ações listadas com o prefixo secretsmanager dizem respeito ao uso do Amazon Redshift para gerenciar as credenciais de administrador. Essas ações permitem que o Amazon Redshift use AWS Secrets Manager para criar e gerenciar os segredos de credencial de administrador.

O JSON a seguir mostra ações e o escopo de recursos, para o Amazon Redshift, para gerenciamento das credenciais de administrador com o AWS Secrets Manager.

[ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:RotateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:redshift!*" ], "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]

Como permitir que uma entidade do IAM crie perfis vinculados ao serviço AWSServiceRoleForRedshift

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

Como permitir que uma entidade do IAM exclua perfis vinculados ao serviço AWSServiceRoleForRedshift

Adicione a seguinte declaração de política às permissões dessa entidade IAM:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

Como alternativa, você pode usar uma política gerenciada pela AWS para fornecer acesso total ao Amazon Redshift.

Criar uma função vinculada a serviço para Amazon Redshift

Você não precisa criar manualmente uma função vinculada ao serviço AWSServiceRoleForRedshift. O Amazon Redshift cria a função serviço vinculada a serviço para você. Se a função vinculada ao serviço AWSServiceRoleForRedshift foi excluída de sua conta, o Amazon Redshift cria a função quando você inicia um novo cluster do Amazon Redshift.

Importante

Se você usou o serviço Amazon Redshift antes de 18 de setembro de 2017, quando ele começou a oferecer suporte a funções vinculadas a serviços, o Amazon Redshift criou a função AWSServiceRoleForRedshift em sua conta. Para saber mais, consulte Uma nova função apareceu na minha conta do IAM.

Editar uma função vinculada a serviço para Amazon Redshift

O Amazon Redshift não permite que você edite a função vinculada ao serviço AWSServiceRoleForRedshift. Depois que você criar um perfil vinculado ao serviço, não poderá alterar o nome do perfil, pois várias entidades podem fazer referência ao perfil. No entanto, você pode editar a descrição da função usando o console do IAM, a AWS Command Line Interface (AWS CLI), ou a API do IAM. Para obter mais informações, consulte Modificar uma função noManual do usuário do IAM.

Excluir uma função vinculada a serviço para Amazon Redshift

Se você não precisar mais usar um atributo ou serviço que exija uma função vinculada a um serviço, recomendamos que você exclua essa função. Dessa forma, você não terá uma entidade não utilizada que não seja ativamente monitorada ou mantida.

Para que você possa excluir uma função vinculada a serviço para uma conta, será necessário desligar e excluir todos os clusters da conta. Para ter mais informações, consulte Encerrar e excluir um cluster.

Também é possível usar o console do IAM, a AWS CLI ou a API do IAM para excluir uma função vinculada ao serviço. Para obter mais informações, consulte Excluir uma função vinculada ao serviço no Guia do usuário do IAM.