Visão geral do gerenciamento de permissões de acesso aos recursos do Amazon Redshift - Amazon Redshift

Visão geral do gerenciamento de permissões de acesso aos recursos do Amazon Redshift

Todo recurso da AWS é de propriedade de uma conta da AWS, e as permissões para criar ou acessar os recursos são regidas por políticas de permissões. Um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e perfis), e alguns serviços (como o AWS Lambda) também aceitam a anexação de políticas de permissões a recursos.

nota

Um administrador da conta (ou usuário administrador) é um usuário com privilégios de administrador. Para obter mais informações, consulte Melhores práticas do IAM no IAM User Guide.

Ao conceder permissões, você decide quem recebe as permissões, para quais recursos as permissões são concedidas e as ações específicas que você deseja permitir nesses recursos.

Recursos e operações do Amazon Redshift

O Amazon Redshift fornece recursos, ações e chaves de contexto de condição específicos ao serviço para uso em políticas de permissão do IAM.

Permissões de acesso ao Amazon Redshift, Amazon Redshift sem servidor, à API DATA do Amazon Redshift e ao Editor de Consultas do Amazon Redshift v2

Ao configurar Controle de acesso, você escreve políticas de permissão que podem ser anexadas a uma identidade do IAM (políticas baseadas em identidade). Para obter informações de referência detalhadas, consulte os seguintes tópicos na Referência de autorização do serviço:

A Referência de autorização de serviço contém informações sobre quais operações de API podem ser usadas em uma política do IAM. Também inclui o recurso da AWS para o qual você pode conceder as permissões e as chaves de condição que você pode incluir para controle de acesso detalhado. Para obter mais informações sobre as condições, consulte Uso de condições de política do IAM para controle de acesso refinado.

Você especifica as ações no campo Action da política, o valor de recurso no campo Resource da política e as condições no campo Condition da política. Para especificar uma ação para o Amazon RedShift, use o prefixo redshift: seguido do nome da operação da API (por exemplo, redshift:CreateCluster).

Informações sobre propriedade de recursos

Um proprietário do recurso é a conta da AWS que criou um recurso. Ou seja, o proprietário do recurso é a conta da AWS da entidade principal (a conta raiz, um usuário do IAM ou uma função do IAM) que autentica a solicitação que cria o recurso. Os seguintes exemplos mostram como isso funciona:

  • Se você usar as credenciais da conta raiz de sua conta da AWS para criar um cluster de banco de dados, sua conta da AWS é a proprietária do recurso Amazon Redshift.

  • Se você criar uma função IAM em sua conta da AWS com permissões para criar recursos do Amazon Redshift, qualquer pessoa que possa assumir a função pode criar recursos do Amazon Redshift. Sua conta da AWS, à qual a função pertence, possui os recursos do Amazon Redshift.

  • Se você criar um usuário do IAM em sua conta da AWS e conceder permissões para criar recursos do Amazon Redshift para esse usuário, o usuário pode criar recursos do Amazon Redshift. No entanto, sua conta da AWS, à qual o usuário pertence, possui os recursos do Amazon Redshift. Na maioria dos casos, esse método não é recomendado. Recomendamos criar um perfil do IAM e anexar permissões ao perfil e, depois, atribuir o perfil a um usuário.

Gerenciamento de acesso aos recursos

A política de permissões descreve quem tem acesso a quê. A seção a seguir explica as opções disponíveis para a criação das políticas de permissões.

nota

Esta seção discute o uso de IAM no contexto do Amazon Redshift. Não são fornecidas informações detalhadas sobre o serviço IAM. Para ver a documentação completa do IAM, consulte What is IAM? no IAM User Guide. Para obter informações sobre a sintaxe e as descrições da política do IAM, consulte a referência da política do IAM da AWS no Guia do usuário do IAM.

As políticas anexadas a uma identidade do IAM são conhecidas como políticas baseadas em identidade (políticas do IAM;) e as políticas anexadas a um recurso são conhecidas como políticas baseadas em recurso. O Amazon Redshift oferece suporte apenas a políticas baseadas em identidade (políticas do IAM).

Políticas baseadas em identidade (políticas do IAM)

É possível atribuir permissões anexando políticas a um perfil do IAM e, depois, atribuindo esse perfil a um usuário ou grupo. Segue-se um exemplo de política que contém permissões para criar, excluir, modificar e reinicializar clusters do Amazon Redshift para sua conta da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowManageClusters", "Effect":"Allow", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource":"*" } ] }

Para obter mais informações sobre o uso de políticas baseadas em identidade com o Amazon Redshift, consulte Usar políticas baseadas em identidade (políticas do IAM) para o Amazon Redshift. Para obter mais informações sobre usuários, grupos, funções e permissões, consulte Identidades (usuários, grupos e funções) no Manual do usuário do IAM.

Políticas baseadas em recursos

Outros serviços, como o Amazon S3, também aceitam políticas de permissões baseadas em recurso. Por exemplo: você pode anexar uma política a um bucket do S3 para gerenciar permissões de acesso a esse bucket. O Amazon Redshift não oferece suporte a políticas baseadas em recursos. 

Especificar elementos da política: ações, efeitos, recursos e entidades principais

Para cada recurso do Amazon Redshift (consulte Recursos e operações do Amazon Redshift), o serviço define um conjunto de operações de API (consulte Ações). Para conceder permissões para essas operações de API, o Amazon Redshift define um conjunto de ações que você pode especificar em uma política. A execução de uma operação de API pode exigir permissões para mais de uma ação.

Estes são os elementos de política básicos:

  • Recurso: em uma política, você usa um Amazon Resource Name (ARN – Nome do recurso da Amazon) para identificar o recurso a que a política se aplica. Para obter mais informações, consulte Recursos e operações do Amazon Redshift.

  • Ação: você usa palavras-chave de ação para identificar operações de recursos que deseja permitir ou negar. Por exemplo, a permissão redshift:DescribeClusters concede ao usuário permissões para realizar a operação DescribeClusters do Amazon Redshift.

  • Efeito - Você especifica o efeito quando o usuário solicita a ação específica, que pode ser permitir ou negar. Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado. Você também pode negar explicitamente o acesso a um recurso, para ter certeza de que um usuário não consiga acessá-lo, mesmo que uma política diferente conceda acesso.

  • Entidade principal: em políticas baseadas em identidade (políticas do IAM), o usuário ao qual a política é anexada é a entidade principal implícita. Para as políticas baseadas em recursos, você especifica quais usuários, contas, serviços ou outras entidades deseja que recebam permissões (isso se aplica somente a políticas baseadas em recursos). O Amazon Redshift não oferece suporte a políticas baseadas em recursos.

Para saber mais sobre a sintaxe e as descrições da política do IAM, consulte a Referência da política do AWS IAM no Manual do usuário do IAM.

Para obter uma tabela que mostra todas as ações da API do Amazon Redshift e os recursos aos quais se aplicam, consulte Permissões de acesso ao Amazon Redshift, Amazon Redshift sem servidor, à API DATA do Amazon Redshift e ao Editor de Consultas do Amazon Redshift v2.

Especificar condições em uma política

Ao conceder permissões, você pode usar a linguagem da política de acesso para especificar as condições quando uma política deve entrar em vigor. Por exemplo, é recomendável aplicar uma política somente após uma data específica. Para obter mais informações sobre como especificar condições em uma linguagem de política de acesso, consulte Elementos de política do IAM JSON: Condição no Manual do usuário do IAM.

Para identificar as condições em que as políticas de permissões se aplicam, inclua um elemento Condition em sua política de permissões do IAM. Por exemplo, você pode criar uma política que permita a um usuário criar um cluster usando a ação redshift:CreateCluster e você pode adicionar um elemento Condition para restringir o usuário a criar o cluster somente em uma região específica. Para obter detalhes, consulte Uso de condições de política do IAM para controle de acesso refinado. Para obter uma lista que mostra todas as chaves-valor de condição e as ações e recursos do Amazon Redshift aos quais se aplicam, consulte Permissões de acesso ao Amazon Redshift, Amazon Redshift sem servidor, à API DATA do Amazon Redshift e ao Editor de Consultas do Amazon Redshift v2.

Uso de condições de política do IAM para controle de acesso refinado

No Amazon Redshift, você pode usar chaves de condição para restringir o acesso a recursos com base nas etiquetas desses recursos. A seguir estão as chaves de condição comuns do Amazon Redshift.

Chave de condição Descrição

aws:RequestTag

Requer que os usuários incluam uma chave de tag (nome) e valor sempre que criarem um recurso. Para obter mais informações, consulte aws:RequestTag no Manual do usuário do IAM.

aws:ResourceTag

Restringe o acesso de usuário a recursos com base em chaves de tag e valores específicos. Para obter mais informações, consulte aws:ResourceTag no Manual do usuário do IAM.

aws:TagKeys

Use essa chave para comparar as chaves de tag em uma solicitação com as chaves especificadas na política. Para obter mais informações, consulte aws:TagKeys no Manual do usuário do IAM.

Para obter informações sobre tags, consulte Visão geral da marcação.

Para uma lista de ações de API compatíveis com as chaves de condição redshift:RequestTag e redshift:ResourceTag, consulte Permissões de acesso ao Amazon Redshift, Amazon Redshift sem servidor, à API DATA do Amazon Redshift e ao Editor de Consultas do Amazon Redshift v2.

As chaves de condição a seguir podem ser usadas com a ação GetClusterCredentials do Amazon Redshift

Chave de condição Descrição

redshift:DurationSeconds

Limita o número de segundos que pode ser especificado como duração.

redshift:DbName

Restringe os nomes de banco de dados que podem ser especificados.

redshift:DbUser

Restringe os nomes de usuário de banco de dados que podem ser especificados.

Exemplo 1: restrição de acesso usando a chave de condição aws:ResourceTag

Use a seguinte política do IAM para permitir que um usuário modifique um cluster do Amazon Redshift apenas para uma conta da AWS específica na região da us-west-2 com uma tag nomeada environment com um valor de tag de test.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowModifyTestCluster", "Effect": "Allow", "Action": "redshift:ModifyCluster", "Resource": "arn:aws:redshift:us-west-2:123456789012:cluster:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "test" } } } }

Exemplo 2: restrição de acesso usando a chave de condição aws:RequestTag

Use a seguinte política de IAM para permitir que um usuário crie um cluster do Amazon Redshift apenas se o comando para criar o cluster incluir uma tag nomeada usage e um valor de tag de production. A condição com aws:TagKeys e o modificador ForAllValues especifica que somente as chaves costcenter e usage podem ser especificadas na solicitação.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCreateProductionCluster", "Effect": "Allow", "Action": [ "redshift:CreateCluster", "redshift:CreateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/usage": "production" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "costcenter", "usage" ] } } } }