

 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/). 

# Autorizar operações COPY, UNLOAD, CREATE EXTERNAL FUNCTION e CREATE EXTERNAL SCHEMA usando funções do IAM
<a name="copy-unload-iam-role"></a>

Você pode usar o comando [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) para carregar (ou importar) dados no Amazon Redshift e o comando [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) para descarregar (ou exportar) dados do Amazon Redshift. Você pode usar o comando CREATE EXTERNAL FUNCTION para criar funções definidas pelo usuário que invocam funções do AWS Lambda. 

Ao usar o Amazon Redshift Spectrum, você usa o comando [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) para especificar a localização de um bucket do Amazon S3 que contém seus dados. Ao executar os comandos COPY, UNLOAD ou CREATE EXTERNAL SCHEMA, você fornece credenciais de segurança. Essas credenciais autorizam seu cluster Amazon Redshift a ler ou gravar dados de e para seu destino, como um bucket do Amazon S3. 

Ao executar o CREATE EXTERNAL FUNCTION, você fornece credenciais de segurança usando o parâmetro de função do IAM. Essas credenciais autorizam seu cluster do Amazon Redshift a invocar funções do Lambda do AWS Lambda. O método preferido para fornecer credenciais de segurança é especificar uma função do AWS Identity and Access Management (IAM). Para COPY e UNLOAD, é possível fornecer as credenciais temporárias. Para obter informações sobre como criar uma função do IAM, consulte [Autorizar o Amazon Redshift a acessar serviços da AWS em seu nome](authorizing-redshift-service.md).

Os usuários precisam de acesso programático se quiserem interagir com a AWS de fora do Console de gerenciamento da AWS. A forma de conceder acesso programático depende do tipo de usuário que está acessando a AWS.

Para conceder acesso programático aos usuários, selecione uma das seguintes opções:


****  

| Qual usuário precisa de acesso programático? | Para | Por | 
| --- | --- | --- | 
| IAM | (Recomendado) Use credenciais do console como credenciais temporárias para assinar solicitações programáticas para a AWS CLI, os AWS SDKs ou as APIs da AWS. |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/copy-unload-iam-role.html)  | 
|  Identidade da força de trabalho (Usuários gerenciados no Centro de Identidade do IAM)  | Use credenciais temporárias para assinar solicitações programáticas para a AWS CLI, os SDKs da AWS ou as APIs da AWS. |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/copy-unload-iam-role.html)  | 
| IAM | Use credenciais temporárias para assinar solicitações programáticas para a AWS CLI, os SDKs da AWS ou as APIs da AWS. | Siga as instruções em [Usar credenciais temporárias com recursos da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) no Guia do usuário do IAM. | 
| IAM | (Não recomendado)Use credenciais de longo prazo para assinar solicitações programáticas para a AWS CLI, os SDKs da AWS ou as APIs da AWS. |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/mgmt/copy-unload-iam-role.html)  | 

As etapas para usar uma função do IAM são:
+ Crie uma função do IAM para usar com seu cluster Amazon Redshift.
+ Associe a função do IAM ao cluster.
+ Inclua o ARN da função IAM ao chamar o comando COPY, UNLOAD, CREATE EXTERNAL SCHEMA ou CREATE EXTERNAL FUNCTION.

# Associar funções do IAM a clusters
<a name="copy-unload-iam-role-associating-with-clusters"></a>

Depois de criar uma função do IAM que autoriza o Amazon Redshift a acessar outros serviços da AWS para você, você deve associar essa função a um cluster do Amazon Redshift. Faça isso para poder usar a função para carregar ou descarregar dados. 

## Permissões necessárias para associar uma função do IAM a um cluster
<a name="copy-unload-iam-role-associating-with-clusters-perms"></a>

Para associar um perfil do IAM a um cluster, um usuário deve ter a permissão `iam:PassRole` para esse perfil do IAM. Essa permissão permite que um administrador restrinja quais funções do IAM um usuário pode associar a clusters do Amazon Redshift. Como prática recomendada, anexe políticas de permissões a um perfil do IAM e, depois, atribua-as a usuários e grupos, conforme necessário. Para obter mais informações, consulte [Gerenciamento de identidade e acesso no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html).

O exemplo a seguir mostra uma política do IAM que pode ser anexada a um usuário para permitir que ele realize estas ações: 
+ Obtenha os detalhes de todos os clusters do Amazon Redshift pertencentes à conta desse usuário.
+ Associe qualquer uma das três funções do IAM a qualquer um dos dois clusters do Amazon Redshift.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "redshift:DescribeClusters",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "redshift:ModifyClusterIamRoles",
                 "redshift:CreateCluster"
            ],
            "Resource": [
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster",
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-second-redshift-cluster"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/MyRedshiftRole",
                "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                "arn:aws:iam::123456789012:role/ThirdRedshiftRole"
             ]
        }
    ]
}
```

------

Depois que um usuário tem as permissões apropriadas, ele pode associar um perfil do IAM a um cluster do Amazon Redshift. A função do IAM está então pronta para uso com o comando COPY ou UNLOAD ou outros comandos do Amazon Redshift.

Para obter mais informações sobre políticas do IAM, consulte [Visão geral das políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.

## Gerenciar a associação da função do IAM a um cluster
<a name="managing-iam-role-association-with-cluster"></a>

Você pode associar uma função do IAM a um cluster do Amazon Redshift ao criar o cluster. Ou você pode modificar um cluster existente e adicionar ou remover uma ou mais associações de funções do IAM. 

Esteja ciente do seguinte:
+ O número máximo de funções do IAM que você pode associar está sujeito a uma cota.
+ Uma função do IAM pode ser associada a vários clusters do Amazon Redshift.
+ Uma função do IAM pode ser associada a um cluster do Amazon Redshift apenas se a função do IAM e o cluster forem de propriedade da mesma conta da AWS. 

Você pode gerenciar associações de função do IAM de um cluster ao console usando o procedimento a seguir.

**Para gerenciar associações à função do IAM**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Redshift em [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. No menu de navegação, escolha **Clusters**, depois selecione o cluster que deseja atualizar.

1. Em **Actions** (Ações), escolha **Manage IAM roles** (Gerenciar funções do IAM) para exibir a lista atual de funções do IAM associadas ao cluster. 

1. Na página **Manage IAM roles** (Gerenciar funções do IAM), escolha as funções do IAM disponíveis para adição e escolha **Add IAM role** (Adicionar função do IAM). 

1. Escolha **Done** (Concluído) para salvar as alterações. 

É possível gerenciar associações à função do IAM de um cluster com a AWS CLI usando as abordagens a seguir.

Para associar uma função do IAM a um cluster quando criado, especifique o nome de recurso da Amazon (ARN) da função do IAM do parâmetro `--iam-role-arns` do comando `create-cluster`. O número máximo de funções do IAM que você pode adicionar ao chamar o comando `create-cluster` está sujeito a uma cota. 

Associar e desassociar funções do IAM com clusters do Amazon Redshift é um processo assíncrono. Você pode obter o status de todas as associações de cluster da função do IAM chamando o comando `describe-clusters`.

O exemplo a seguir associa duas funções do IAM ao cluster recém-criado chamado `my-redshift-cluster`.

```
aws redshift create-cluster \
    --cluster-identifier "my-redshift-cluster" \
    --node-type "ra3.4xlarge" \
    --number-of-nodes 16 \
    --iam-role-arns "arn:aws:iam::123456789012:role/RedshiftCopyUnload" \
                    "arn:aws:iam::123456789012:role/SecondRedshiftRole"
```

Para associar uma função do IAM a um cluster existente do Amazon Redshift, especifique o nome do recurso da Amazon (ARN) da função IAM para o parâmetro `--add-iam-roles` do comando `modify-cluster-iam-roles` O número máximo de funções do IAM que você pode adicionar ao chamar o comando `modify-cluster-iam-roles` está sujeito a uma cota. 

O exemplo a seguir associa uma função do IAM a um cluster existente chamado `my-redshift-cluster`.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

Para dissociar uma função do IAM de um cluster, especifique o ARN da função do IAM do parâmetro `--remove-iam-roles` do comando `modify-cluster-iam-roles`. `modify-cluster-iam-roles` O número máximo de funções do IAM que você pode remover ao chamar o comando `modify-cluster-iam-roles` está sujeito a uma cota.

O exemplo a seguir remove a associação de uma função do IAM para a conta da AWS `123456789012` de um cluster denominado `my-redshift-cluster`.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

### Listar associações à função do IAM de um cluster usando a AWS CLI
<a name="w2aac37c30c30c35c31b7b9c29"></a>

Para listar todas as funções do IAM associadas a um cluster do Amazon Redshift e o status da associação de funções do IAM, chame o comando `describe-clusters`. O ARN de cada função do IAM associada ao cluster é retornado na lista `IamRoles` conforme mostrado na saída de exemplo a seguir.

As funções que foram associadas ao cluster mostram um status de `in-sync`. Funções no processo de associação ao cluster mostram um status `adding`. As funções que estão sendo desassociadas do cluster mostram um status de `removing`.

```
{
    "Clusters": [
        {
            "ClusterIdentifier": "my-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 16,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        },
        {
            "ClusterIdentifier": "my-second-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 10,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/ThirdRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        }
    ]
}
```

Para obter mais informações sobre como usar a AWS CLI, consulte o *[Manual do usuário do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)*.