

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

# 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)*.