Amazon Redshift é um poderoso information warehouse baseado em nuvem que as organizações podem usar para analisar dados estruturados e semi-estruturados por meio de consultas SQL avançadas. Como um serviço totalmente gerenciado, fornece alto desempenho e escalabilidade, permitindo acesso seguro aos dados armazenados no information warehouse. As organizações em todo o mundo dependem do Amazon Redshift para lidar com conjuntos de dados enormes, atualizar seus recursos de análise e fornecer inteligência de negócios valiosa para seus stakeholders.
AWS IAM Heart Id serve como a plataforma preferida para controlar o acesso da força de trabalho às ferramentas da AWS, incluindo Desenvolvedor da Amazon Q.. Ele permite uma única conexão com o seu provedor de identidade existente (IDP), criando uma visão unificada dos usuários nos aplicativos da AWS e aplicando Propagação de identidade confiável Para uma experiência suave e consistente.
Você pode acessar dados no Amazon Redshift usando usuários locais ou usuários externos. Um usuário native no Amazon Redshift é uma conta de usuário do banco de dados criada e gerenciada diretamente no próprio cluster do Redshift. Amazon Redshift também integra -se ao IAM Id Hearte suportes Propagação de identidade confiávelentão você pode usar IDPs de terceiros como Microsoft ENTRA ID (Azure AD), Okta, Ping, OneLogin ou Use IAM Id Heart como fonte de identidade. A integração do IAM Id Heart com o Amazon Redshift suporta recursos centralizados de autenticação e SSO, simplificando o gerenciamento de acesso em ambientes de várias contas. À medida que as organizações crescem em escala, é recomendável usar usuários externos para integração entre serviços e gerenciamento de acesso centralizado.
Nesta postagem, orientamos você pelo processo de migrar suavemente o seu gerenciamento native de usuários de usuários de usuários para IAM para usuários e grupos do centro de identidade usando o RedshiftIdcMigration utilidade.
Visão geral da solução
O diagrama a seguir ilustra a arquitetura da solução.
O RedshiftIdcMigration A utilidade acelera a migração de seus usuários, grupos e funções locais de desvio para o vermelho para a instância do IAM Id Heart, realizando as seguintes atividades:
- Crie usuários no IAM Heart Id para todos os usuários locais em uma determinada instância do desvio para o vermelho.
- Crie grupos no Centro de Identidade do IAM para todos os grupos ou função em uma determinada instância do desvio para o vermelho.
- Atribua usuários a grupos no IAM Id Heart de acordo com as tarefas existentes na instância do desvio para o vermelho.
- Crie as funções do IAM Id Heart na instância do Redshift que correspondem aos grupos criados no IAM Id Heart.
- As permissões de concessão para as funções do IAM Id Heart na instância do Redshift com base nas permissões atuais dadas aos grupos e funções locais.
Pré -requisitos
Antes de executar o utilitário, full os seguintes pré -requisitos:
- Ativar IAM Heart Id em sua conta.
- Siga as etapas do submit Integrar o provedor de identidade (IDP) com o Amazon Redshift Question Editor V2 e o cliente SQL usando o AWS IAM Id Heart for Seamless Single Signal-On (Especificamente, siga as etapas 1–8, pulando as etapas 4 e 6).
- Configure as atribuições de aplicativos do IAM Id Heart:
- No console do IAM Id Heart, escolha Atribuições de aplicativos e Aplicações.
- Selecione seu aplicativo e no Ações Menu suspenso, escolha Editar detalhes.
- Para Atribuições de usuário e grupoescolher Não requer tarefas. Essa configuração permite testar a conectividade do Amazon Redshift sem configurar permissões específicas de acesso a dados.
- Configurar a autenticação do IAM Id Heart com acesso administrativo de qualquer Nuvem de computação elástica da Amazon (Amazon EC2) ou AWS CloudShell.
O utilitário será executado a partir de uma instância do EC2 ou CloudShell. Se você estiver usando uma instância do EC2, uma função de IAM será anexada à instância. Certifique -se de que o papel do IAM usado durante a execução tenha as seguintes permissões (se não, crie uma nova política com essas permissões e anexe -a à função do IAM):
- Amazon Redshift Permissões (para servidor sem servidor):
- Amazon Redshift Permissões (para provisionadas):
- Permissões de armazenamento de identidade:
Artefatos
Baixar os seguintes artefatos de utilidade do Repo Github:
- idc_redshift_unload_indatabase_groups_roles_users.py – Um script python para descarregar usuários, grupos, funções e suas associações.
- redshift_unload.ini – O arquivo de configuração usado no script anterior para ler os detalhes do Redshift Information Warehouse e os locais da Amazon S3 para descarregar os arquivos.
- idc_add_users_groups_roles_sets.py – Um script Python para criar usuários e grupos no IAM Id Heart e depois associar os usuários a grupos no IAM Id Heart.
- idc_config.ini – O arquivo de configuração usado no script anterior para ler os detalhes do IAM Id Heart.
- VW_LOCAL_UGR_TO_IDC_URGR_PRIV.SQL – Um script que gera instruções SQL que executam duas tarefas no Amazon Redshift:
- Crie funções que correspondam exatamente aos nomes dos grupos do IAM Id Heart, adicionando um prefixo especificado.
- Conceda permissões apropriadas a essas funções de desvio para o vermelho recém -criadas.
Cenário de teste
Este caso de teste foi projetado para oferecer experiência prática e familiarizá -lo com a funcionalidade da concessionária. O cenário é estruturado em torno de um sistema hierárquico de papéis aninhados, começando com permissões no nível de objeto atribuídas a funções técnicas. Essas funções técnicas são alocadas para funções de negócios. Finalmente, as funções de negócios são concedidas a usuários individuais. Para aprimorar o ambiente de teste, o cenário também incorpora um grupo de usuários. O diagrama a seguir ilustra essa hierarquia.
Crie conjuntos de dados
Configure dois esquemas separados (tickit
e tpcds
) em um banco de dados de desvio para o vermelho usando o Crie esquema comando. Em seguida, crie e preencha algumas mesas em cada esquema usando o tickit e TPCDS amostras de conjuntos de dados.
Especifique o Nome do Recurso Amazon (ARN) apropriado do IAM (ARN) nos comandos de cópia, se necessário.
Criar usuários
Crie usuários com o seguinte código:
Crie funções de negócios
Crie usuários de negócios com o seguinte código:
Crie papéis técnicos
Crie funções técnicas com o seguinte código:
Criar grupos
Crie grupos com o seguinte código:
Conceder direitos às funções técnicas
Para conceder direitos aos papéis técnicos, use o seguinte código:
Conceder funções técnicas a funções de negócios
Para conceder as funções técnicas às funções comerciais, use o seguinte código:
Conceder funções comerciais aos usuários
Para conceder as funções comerciais aos usuários, use o seguinte código:
Conceder direitos aos grupos
Para conceder direitos aos grupos, use o seguinte código:
Adicione usuários a grupos
Para adicionar usuários aos grupos, use o seguinte código:
Implantar a solução
Conclua as seguintes etapas para implantar a solução:
- Atualize o Cluster Redshift ou os detalhes sem servidor e a localização da Amazon S3 em
redshift_unload.ini
:- cluster_type =
provisioned
ouserverless
- cluster_id =
${cluster_identifier}
(exigido secluster_type
éprovisioned
) - db_user =
${database_user}
- db_name =
${database_name}
- hospedar =
${host_url}
(exigido secluster_type
éprovisioned
) - porta =
${port_number}
- WorkGroup_Name =
${workgroup_name}
(exigido secluster_type
éserverless
) - região =
${area}
- s3_bucket =
${S3_bucket_name}
- papéis =
roles.csv
- Usuários =
customers.csv
- Role_memberships =
role_memberships.csv
- cluster_type =
- Atualizar detalhes do IAM Id Heart em
idc_config.ini
:- região =
${area}
- conta_id =
${account_id}
- identity_store_id =
${identity_store_id}
(Disponível no console do IAM Id Heart Configurações página) - instância_arn =
${iam_identity_center_instance_arn}
(Disponível no console do IAM Id Heart Configurações página) - permissão_set_arn =
${permission_set_arn}
- atribui_permission_set =
True
ouFalse
(True
sepermission_set_arn
é definido) - s3_bucket =
${S3_bucket_name}
- usuários_file =
customers.csv
- RONS_FILE =
roles.csv
- Role_memberships_file =
role_memberships.csv
- região =
- Crie um diretório no CloudShell ou em sua própria instância EC2 com conectividade com o Amazon Redshift.
- Copie os dois arquivos .ini e faça o obtain dos scripts Python para esse diretório.
- Correr
idc_redshift_unload_indatabase_groups_roles_users.py
de CloudShell ou sua instância EC2:python idc_redshift_unload_indatabase_groups_roles_users.py
- Correr
idc_add_users_groups_roles_psets.py
de CloudShell ou sua instância EC2:python idc_add_users_groups_roles_psets.py
- Conecte seu cluster Redshift usando o Amazon Redshift Question Editor V2 ou o cliente SQL preferido, usando credenciais de superusuário.
- Copie o SQL no
vw_local_ugr_to_idc_urgr_priv.sql
Arquive e execute -o no editor de consulta para criar ovw_local_ugr_to_idc_urgr_priv
visualizar. - Execute o comando SQL para gerar as instruções SQL para criar funções e permissões:
Por exemplo, considere os seguintes subsídios existentes:
Essas doações são convertidas para o seguinte código:
- Revise as declarações no
idc_based_grants
coluna.
Isso pode não ser uma lista abrangente de permissões; portanto, revise -as com cuidado. - Se tudo estiver correto, execute as instruções do cliente SQL.
Quando você concluir o processo, você deve ter a seguinte configuração:
- O IAM Id Heart agora contém usuários recém -criados da Amazon Redshift
- Os grupos e funções locais do desvio para o vermelho são criados como grupos no IAM Id Heart
- Novos papéis são estabelecidos no Amazon Redshift, correspondendo aos grupos criados no IAM Id Heart
- As funções de desvio para o vermelho recém -criadas recebem permissões apropriadas
Se você encontrar um problema enquanto se conecta ao Amazon Redshift com o editor de consulta usando o IAM Id Heart, consulte Solução de problemas de conexões do Amazon Redshift Consulta Editor V2.
Considerações
Considere o seguinte ao usar esta solução:
- No momento da redação, criando permissões em Formação do lago AWS não está no escopo.
- O IAM Id Heart e o IDP Integration Setup estão fora de escopo para este utilitário. No entanto, você pode usar a visualização
vw_local_ugr_to_idc_urgr_priv.sql
Para criar funções e conceder permissões aos usuários e grupos do IDP, passaram pelo IAM Id Heart. - Se você tiver permissões fornecidas diretamente aos IDs de usuários locais (não usando grupos ou funções), deve alterar isso para uma abordagem de permissão baseada em função para a integração do IAM Id Heart. Crie funções e forneça permissões usando funções em vez de fornecer permissões diretamente aos usuários.
Limpar
Se você concluiu o cenário de teste, limpe seu ambiente:
- Remova as novas funções de desvio para o vermelho criadas pela concessionária, correspondendo aos grupos estabelecidos no IAM Id Heart.
- Exclua os usuários e grupos criados pelo utilitário no IAM Id Heart.
- Exclua os usuários, grupos e funções especificadas no cenário de teste.
- Solte o
tickit
etpcds
Esquemas.
Você pode usar o VIGOR Parâmetro ao soltar as funções para remover atribuições associadas.
Conclusão
Nesta postagem, mostramos como migrar seu gerenciamento native de usuários do Redshift para o IAM Id Heart. Essa transição oferece várias vantagens importantes para sua organização, como gerenciamento de acesso simplificado por meio de administração centralizada de usuários e grupos, uma experiência de usuário simplificada nos serviços da AWS e uma sobrecarga administrativa reduzida. Você pode implementar esse processo de migração passo a passo, para que você possa testar e validar cada etapa antes de fazer a transição totalmente do seu ambiente de produção.
À medida que as organizações continuam a escalar sua infraestrutura da AWS, o uso do IAM Id Heart se torna cada vez mais valioso para manter o gerenciamento de acesso seguro e eficiente, incluindo Amazon Sagemaker Unified Studio Para uma experiência integrada para todos os seus dados e IA.