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
-
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.
-
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 chamarredshift:CreateClusterUser
com o recursodbuser
. O nome do recurso da Amazon (ARN) a seguir especifica odbuser
do Amazon Redshift. Substitua
,region
eaccount-id
pelos valores da região, conta e cluster da AWS. Emcluster-name
, especifique o nome de usuário a ser usado para fazer login no banco de dados do cluster.dbuser-name
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
eaccount-id
pelos valores da região, conta e cluster da AWS. Emcluster-name
, especifique o nome de um banco de dados no qual o usuário fará login.database-name
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çãoredshift:JoinGroup
com o recursodbgroup
do Amazon Redshift no formato a seguir. Substitua
,region
eaccount-id
pelos valores da região, conta e cluster da AWS. Emcluster-name
, especifique o nome de um grupo de usuários ao qual o usuário se associará no login.dbgroup-name
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.