

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Visão geral do gerenciamento de permissões de acesso aos recursos do Amazon Redshift
<a name="redshift-iam-access-control-overview"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 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
<a name="redshift-iam-accesscontrol.actions-and-resources"></a>

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
<a name="redshift-policy-resources.resource-permissions"></a>

Ao configurar [Controle de acesso](redshift-iam-authentication-access-control.md#redshift-iam-accesscontrol), 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*:
+ Para o Amazon Redshift, consulte [Ações, recursos e chaves de condição do Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html) que usam o prefixo `redshift:`.
+ Para o Amazon Redshift sem servidor, consulte [Ações, recursos e chaves de condição do Amazon Redshift sem servidor](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.html) que usam o prefixo `redshift-serverless:`.
+ Para a API DATA do Amazon Redshift, consulte [Ações, recursos e chaves de condição da API DATA do Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html) que usam o prefixo `redshift-data:`.
+ Para o Editor de Consultas do Amazon Redshift v2, consulte [Ações, recursos e chaves de condição do AWS SQL Workbench (Editor de Consultas do Amazon Redshift v2)](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssqlworkbench.html) que usam o prefixo `sqlworkbench:`.

  O editor de consultas v2 inclui ações somente de permissão que não correspondem diretamente a uma operação de API. Essas ações são indicadas na *Referência de autorização de serviço* com `[permission only]`.

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](#redshift-policy-resources.conditions). 

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
<a name="redshift-iam-access-control-resource-ownership"></a>

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 name="redshift-iam-accesscontrol-managingaccess"></a>

Uma *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 de 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?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) 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)
<a name="redshift-iam-manage-access-identity-based"></a>

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

------
#### [ JSON ]

****  

```
{
  "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](redshift-iam-access-control-identity-based.md). Para obter mais informações sobre usuários, grupos, funções e permissões, consulte [Identidades (usuários, grupos e funções)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no *Manual do usuário do IAM*. 

### Políticas baseadas em recursos
<a name="redshift-iam-access-control-resource-based"></a>

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
<a name="redshift-iam-access-control-specify-actions"></a>

Para cada recurso do Amazon Redshift (consulte [Recursos e operações do Amazon Redshift](#redshift-iam-accesscontrol.actions-and-resources)), o serviço define um conjunto de operações de API (consulte [Ações](https://docs.aws.amazon.com/redshift/latest/APIReference/API_Operations.html)). 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](#redshift-iam-accesscontrol.actions-and-resources). 
+ **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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) 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](#redshift-policy-resources.resource-permissions). 



## Especificar condições em uma política
<a name="redshift-policy-resources.specifying-conditions"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) 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](#redshift-policy-resources.conditions). 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](#redshift-policy-resources.resource-permissions).

### Uso de condições de política do IAM para controle de acesso refinado
<a name="redshift-policy-resources.conditions"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) no *Manual do usuário do IAM*.  | 

Para obter informações sobre tags, consulte [Marcar recursos no Amazon Redshift](amazon-redshift-tagging.md).

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](#redshift-policy-resources.resource-permissions).

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
<a name="redshift-policy-resources.resource-permissions-example1"></a>

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

------
#### [ JSON ]

****  

```
{
    "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
<a name="redshift-policy-resources.resource-permissions-example2"></a>

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.

------
#### [ JSON ]

****  

```
{
    "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"
                ]
            }
        }
    }
}
```

------