Acessar objetos do banco de dados do Amazon Redshift sem servidor com permissões de perfil de banco de dados
Esse procedimento mostra como conceder permissão para consultar uma tabela por meio de um perfil de banco de dados do Amazon Redshift. O perfil é atribuído por meio de uma tag anexada a um usuário no IAM e passada para o Amazon Redshift durante o login. É uma explicação com exemplo dos conceitos em Definir perfis de banco de dados para conceder a usuários federados no Amazon Redshift sem servidor. A vantagem de concluir essas etapas é que você pode associar um usuário a um perfil de banco de dados e evitar definir as respectivas permissões para cada objeto de banco de dados. Ele simplifica o gerenciamento da capacidade do usuário de consultar, modificar ou adicionar dados às tabelas e realizar outras ações.
O procedimento pressupõe que você já tenha configurado um banco de dados do Amazon Redshift sem servidor e possa conceder permissões no banco de dados. Ele também pressupõe que você tenha permissões para criar um usuário do IAM no console da AWS, criar um perfil do IAM e atribuir permissões de política.
-
Crie um usuário do IAM usando o console do IAM. Posteriormente, você se conectará ao banco de dados com esse usuário.
-
Crie um perfil de banco de dados do Redshift usando o editor de consultas v2 ou outro cliente SQL. Para obter mais informações sobre como criar perfis de banco de dados, consulte CREATE ROLE.
CREATE ROLE urban_planning;
Consulte a visualização do sistema SVV_ROLES para verificar se o perfil foi criado. Ela também retorna perfis do sistema.
SELECT * from SVV_ROLES;
-
Conceda permissão ao perfil de banco de dados que você criou para selecionar em uma tabela. (O usuário do IAM que você criou acabará se conectando e selecionando registros da tabela por meio do perfil do banco de dados.) O nome do perfil e o nome da tabela na amostra de código a seguir são exemplos. Aqui, é concedida permissão para selecionar em uma tabela chamada
cities
.GRANT SELECT on TABLE cities to ROLE urban_planning;
-
Use o console do AWS Identity and Access Management para criar um perfil do IAM. Esse perfil concede permissão para usar o editor de consultas v2. Crie um perfil do IAM e, para o tipo de entidade confiável, escolha Conta da AWS. Depois, selecione Esta conta. Conceda ao perfil as seguintes permissões de política:
-
AmazonRedshiftReadOnlyAccess
-
tag:GetResources
-
tag:GetTagKeys
-
Todas as ações para sqlworkbench, incluindo
sqlworkbench:ListDatabases
esqlworkbench:UpdateConnection
.
-
-
No console do IAM, adicione uma tag com a chave
RedshiftDbRoles
para o usuário do IAM que você criou anteriormente. O valor da tag deve corresponder ao perfil do banco de dados que você criou na primeira etapa. Éurban_planning
na amostra.
Depois de concluir essas etapas, atribua o perfil do IAM ao usuário que você criou no console do IAM. Quando o usuário faz login no banco de dados com o editor de consultas v2, o nome do perfil de banco de dados na tag é passado para o Amazon Redshift e associado a ele. Assim, eles podem consultar as tabelas apropriadas por meio do perfil de banco de dados. Para ilustrar, o usuário neste exemplo pode consultar a tabela cities
por meio do perfil de banco de dados urban_planning
.