Etapa 3: criar um perfil do IAM com permissões para chamar GetClusterCredentials - Amazon Redshift

Etapa 3: criar um perfil do IAM com permissões para chamar GetClusterCredentials

Seu cliente SQL precisa de autorização para chamar a operação GetClusterCredentials em seu nome. Para fornecer essa autorização, crie um usuário ou um perfil e anexe uma política que conceda as permissões necessárias.

Para criar uma função do IAM com permissões para chamar GetClusterCredentials
  1. Usando o serviço do IAM, crie um usuário ou um perfil. Você também pode utilizar um usuário ou uma função existente. Por exemplo, se você tiver criado uma função do IAM para acesso do provedor de identidade, poderá anexar as políticas do IAM necessária a essa função.

  2. Anexe uma política de permissão com permissão para chamar a operação redshift:GetClusterCredentials. Dependendo de quais parâmetros opcionais forem especificados, você também poderá permitir ou restringir ações e recursos adicionais na política:

    • Para permitir que seu cliente SQL recupere a ID, região da AWS e porta do cluster, inclua permissão para chamar a operação redshift:DescribeClusters com o recurso de cluster Redshift.

    • Se você usar a opção AutoCreate, inclua uma permissão para chamar redshift:CreateClusterUser com o recurso dbuser. O nome do recurso da Amazon (ARN) a seguir especifica o dbuser do Amazon Redshift. Substitua region, account-id e cluster-name pelos valores da região, conta e cluster da AWS. Em dbuser-name, especifique o nome de usuário a ser usado para fazer login no banco de dados do cluster.

      arn:aws:redshift:region:account-id:dbuser:cluster-name/dbuser-name
    • (Opcional) Adicione um ARN que especifica o recurso dbname do Amazon Redshift no formato a seguir. Substitua region, account-id e cluster-name pelos valores da região, conta e cluster da AWS. Em database-name, especifique o nome de um banco de dados no qual o usuário fará login.

      arn:aws:redshift:region:account-id:dbname:cluster-name/database-name
    • Se você usar a opção DbGroups, inclua permissão para chamar a operação redshift:JoinGroup com o recurso dbgroup do Amazon Redshift no formato a seguir. Substitua region, account-id e cluster-name pelos valores da região, conta e cluster da AWS. Em dbgroup-name, especifique o nome de um grupo de usuários ao qual o usuário se associará no login.

      arn:aws:redshift:region:account-id:dbgroup:cluster-name/dbgroup-name

Para ter mais informações e exemplos, consulte Políticas de recursos de GetClusterCredentials.

O exemplo a seguir mostra uma política que permite que a função do IAM chame a operação GetClusterCredentials. Especificar o recurso dbuser do Amazon Redshift concede à função acesso ao nome de usuário do banco de dados temp_creds_user no cluster nomeado examplecluster.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/temp_creds_user" } }

Você pode usar um curinga (*) para substituir, total ou parcialmente, o nome do cluster, o nome de usuário e os nomes de grupo de bancos de dados. O exemplo a seguir permite que qualquer nome de usuário comece com temp_ em qualquer cluster na conta especificada.

Importante

A instrução no exemplo a seguir especifica um caractere coringa (*) como parte do valor para o recurso, para que a política permita qualquer nome de recurso que comece com os caracteres especificados. Usar um caractere coringa em suas políticas de IAM pode ser excessivamente permissivo. Como uma prática recomendada, recomendamos o uso de políticas mais restritivas possíveis para seu aplicativo de negócios.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:*/temp_*" } }

O exemplo a seguir mostra uma política que permite que a função do IAM chame a operação GetClusterCredentials com a opção de criar automaticamente um novo usuário e especificar grupos aos quais o usuário se associará no login. A cláusula "Resource": "*" concede à função acesso a qualquer recurso, incluindo clusters, usuários de banco de dados ou grupos de usuários.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": "*" } }

Para obter mais informações, consulte Amazon Redshift ARN syntax.