Conectar o Redshift ao Centro de Identidade do AWS IAM para oferecer uma experiência de autenticação única - Amazon Redshift

Conectar o Redshift ao Centro de Identidade do AWS IAM para oferecer uma experiência de autenticação única

É possível gerenciar o acesso de usuário e grupo aos data warehouses do Amazon Redshift por meio da propagação de identidade confiável. Isso funciona por meio de uma conexão entre o Redshift e o AWS IAM Identity Center, que proporciona aos usuários uma experiência de logon único. Isso faz com que você possa trazer usuários e grupos do diretório e atribuir diretamente permissões a eles. Posteriormente, essa conexão dará suporte à vinculação de ferramentas e serviços adicionais. Para ilustrar um caso de ponta a ponta, é possível usar um painel do Amazon QuickSight ou o editor de consultas do Amazon Redshift v2 para acessar o Redshift. Nesse caso, o acesso se baseia em grupos do Centro de Identidade do AWS IAM. O Redshift pode determinar quem é um usuário e as associações do grupo. AWS O IAM Identity Center também possibilita a você conectar e gerenciar identidades por meio de um provedor de identidades (IdP) de terceiros, como Okta ou PingOne.

Depois de configurar a conexão entre o Redshift e o Centro de Identidade do AWS IAM, o administrador poderá configurar um acesso refinado com base em grupos de provedores de identidade para autorizar o acesso do usuário aos dados.

Os benefícios da integração do Redshift com o AWS IAM Identity Center

O uso do Centro de Identidade do AWS IAM com o Redshift pode beneficiar a organização das seguintes maneiras:

  • Os autores do painel no Amazon QuickSight podem se conectar a fontes de dados do Redshift sem precisar inserir senhas novamente ou exigir que um administrador configure perfis do IAM com permissões complexas.

  • O Centro de Identidade do AWS IAM oferece um local central para os usuários do quadro de funcionários na AWS. É possível criar diretamente usuários e grupos no Centro de Identidade do AWS IAM ou conectar usuários e grupos existentes gerenciados por você em um provedor de identidade baseado em padrões, como Okta, PingOne ou Microsoft Entra ID (Azure AD). AWS O IAM Identity Center direciona a autenticação para a fonte confiável escolhida para usuários e grupos e mantém um diretório de usuários e grupos para acesso pelo Redshift. Para obter mais informações, consulte Manage your identity source e Supported identity providers no Guia de usuário do AWS IAM Identity Center.

  • É possível compartilhar uma instância do Centro de Identidade do AWS IAM com vários clusters e grupos de trabalho do Redshift usando um recurso simples de descoberta automática e conexão. Isso agiliza a adição de clusters sem o esforço extra de configurar a conexão do Centro de Identidade do AWS IAM para cada um, além de garantir que todos os clusters e grupos de trabalho tenham uma visão consistente de usuários, atributos e grupos. A instância do Centro de Identidade do AWS IAM da organização deve estar na mesma região de qualquer unidade de compartilhamento de dados do Redshift a que você esteja se conectando.

  • Como as identidades de usuário são conhecidas e registradas com acesso a dados, é mais fácil para você atender aos regulamentos de conformidade por meio da auditoria do acesso do usuário no AWS CloudTrail.

Configuração da integração do Centro de Identidade do AWS IAM com o Amazon Redshift

O administrador de cluster do Amazon Redshift ou o administrador do Amazon Redshift sem servidor deve realizar várias etapas para configurar o Redshift como uma aplicação habilitada para o Centro de Identidade do AWS IAM. Isso faz com que o Redshift possa descobrir e se conectar automaticamente ao Centro de Identidade do AWS IAM para receber serviços de logon e diretório de usuários. Depois disso, quando criar um cluster ou um grupo de trabalho, o administrador do Redshift poderá permitir que o novo data warehouse use o Centro de Identidade do AWS IAM para gerenciar o acesso ao banco de dados.

O objetivo de habilitar o Redshift como uma aplicação gerenciada pelo Centro de Identidade do AWS IAM é para que você possa controlar as permissões de usuário e grupo dentro do Centro de Identidade do AWS IAM ou de um provedor de identidades de terceiros integrado. Quando os usuários do banco de dados fazem logon em um banco de dados do Redshift, por exemplo, um analista ou um cientista de dados compara os grupos no Centro de Identidade do AWS IAM e se eles coincidem com os nomes de perfil no Redshift. Assim, um grupo que define o nome de uma função do banco de dados do Redshift pode acessar um conjunto de tabelas para análise de vendas, por exemplo. As seções a seguir mostram como configurar isso.

Pré-requisitos

Estes são os pré-requisitos para integrar o Centro de Identidade do AWS IAM ao Amazon Redshift:

  • Configuração da conta: é necessário configurar o Centro de Identidade do AWS IAM na conta de gerenciamento da organização da AWS se pretende ter casos de uso entre contas ou se usa clusters do Redshift em contas diferentes com a mesma instância do Centro de Identidade do AWS IAM. Isso inclui a configuração da origem da identidade. Para obter mais informações, consulte Getting Started, workforce identities e supported identity providers no Guia de usuário do AWS IAM Identity Center. Você deve se certificar de ter criado usuários ou grupos no Centro de Identidade do AWS IAM ou sincronizado usuários e grupos da fonte de identidade para poder atribuí-los aos dados no Redshift.

    nota

    Você tem a opção de usar uma instância da conta do Centro de Identidade do AWS IAM, desde que o Redshift e o Centro de Identidade do AWS IAM estejam na mesma conta. Você pode criar essa instância usando um widget ao criar e configurar um cluster ou um grupo de trabalho do Redshift.

  • Configuração de um emissor de tokens confiáveis: em alguns casos, talvez você precise usar um emissor de tokens confiáveis, que é uma entidade capaz de emitir e verificar tokens confiáveis. Para isso, etapas preliminares são necessárias para que o administrador do Redshift que configura a integração do Centro de Identidade do AWS IAM possa selecionar o emissor de tokens confiáveis e adicionar os atributos necessários para concluir a configuração. Isso pode incluir a configuração de um provedor de identidades externo para servir como um emissor de tokens confiável e a adição dos atributos no console do Centro de Identidade do AWS IAM. Para concluir essas etapas, consulte Using applications with a trusted token issuer.

    nota

    A configuração de um emissor de tokens confiáveis não é obrigatória para todas as conexões externas. A conexão com o banco de dados do Redshift com o editor de consultas do Amazon Redshift v2 não exige a configuração do emissor de tokens confiáveis. Porém, ela pode ser aplicada a aplicações de terceiros, como painéis ou aplicações personalizadas, que se autenticam com o provedor de identidades.

  • Configuração de um perfil do IAM ou funções: as seções a seguir mencionam permissões que devem ser configuradas. Você precisará adicionar permissões segundo as melhores práticas do IAM. As permissões específicas são detalhadas nos procedimentos a seguir.

Consulte mais informações em Getting Started with AWS IAM Identity Center.

Configuração do provedor de identidades para trabalhar com o Centro de Identidade do AWS IAM

A primeira etapa do controle do gerenciamento de identidades de usuário e grupo é se conectar ao Centro de Identidade do AWS IAM e configurar o provedor de identidades. É possível usar o próprio Centro de Identidade do AWS IAM como o provedor de identidades ou conectar um repositório de identidades de terceiros, como o Okta, por exemplo. Consulte mais informações sobre como configurar a conexão e o provedor de identidades em Connect to an external identity provider no Guia de usuário do Centro de Identidade do AWS IAM. Verifique se, ao final desse processo, você tem uma pequena coleção de usuários e grupos adicionados ao Centro de Identidade do AWS IAM, para fins de teste.

Permissões administrativas

Permissões necessárias para o gerenciamento do ciclo de vida da aplicação do Redshift/Centro de Identidade do AWS IAM

Você deve criar uma identidade do IAM, que o administrador do Redshift usa a fim de configurar o Redshift para uso com o Centro de Identidade do AWS IAM. Normalmente, você criaria um perfil do IAM com permissões e o atribuiria a outras identidades conforme necessário. Ele deve ter as permissões listadas para executar as ações a seguir.

Criar a aplicação do Redshift/Centro de Identidade do AWS IAM

  • sso:PutApplicationAssignmentConfiguration: para segurança.

  • sso:CreateApplication: usada para criar uma aplicação do Centro de Identidade do AWS IAM.

  • sso:PutApplicationAuthenticationMethod: concede acesso à autenticação do Redshift.

  • sso:PutApplicationGrant: usada para alterar as informações do emissor de tokens confiáveis.

  • sso:PutApplicationAccessScope: para configuração da aplicação do Redshift do Centro de Identidade do AWS IAM. Isso se aplica ao AWS Lake Formation e a Concessões de Acesso do Amazon S3.

  • redshift:CreateRedshiftIdcApplication: usada para criar uma aplicação do Redshift do Centro de Identidade do AWS IAM.

Descrever a aplicação do Redshift/Centro de Identidade do AWS IAM

  • sso:GetApplicationGrant: usado para listar as informações do emissor de tokens confiáveis.

  • sso:ListApplicationAccessScopes: para que a configuração da aplicação do Redshift do Centro de Identidade do AWS Lake Formation IAM liste integrações subsequentes, como para o AWS e a Concessão de Acesso do S3.

  • redshift:DescribeRedshiftIdcApplications: usada para descrever as aplicações existentes do Centro de Identidade do AWS IAM.

Alterar a aplicação do Redshift/Centro de Identidade do AWS IAM

  • redshift:ModifyRedshiftIdcApplication: usada para alterar uma aplicação Redshift existente.

  • sso:UpdateApplication: usada para atualizar uma aplicação do Centro de Identidade do AWS IAM.

  • sso:GetApplicationGrant: obtém as informações do emissor de tokens de confiança.

  • sso:ListApplicationAccessScopes: para configuração da aplicação do Redshift do Centro de Identidade do AWS IAM.

  • sso:DeleteApplicationGrant: exclui as informações do emissor de tokens confiáveis.

  • sso:PutApplicationGrant: usada para alterar as informações do emissor de tokens confiáveis.

  • sso:PutApplicationAccessScope: para configuração da aplicação do Redshift do Centro de Identidade do AWS IAM. Isso se aplica ao AWS Lake Formation e a Concessões de Acesso do Amazon S3.

  • sso:DeleteApplicationAccessScope: para excluir a configuração da aplicação do Redshift do Centro de Identidade do AWS IAM. Isso se aplica ao AWS Lake Formation e a Concessões de Acesso do Amazon S3.

Excluir a aplicação do Redshift/Centro de Identidade do AWS IAM

  • sso:DeleteApplication: usada para excluir uma aplicação do Centro de Identidade do AWS IAM.

  • redshift:DeleteRedshiftIdcApplication: permite excluir uma aplicação existente do Redshift do Centro de Identidade do AWS IAM.

Permissões necessárias para o gerenciamento do ciclo de vida da aplicação Redshift/editor de consultas v2

Você deve criar uma identidade do IAM, que o administrador do Redshift usa a fim de configurar o Redshift para uso com o Centro de Identidade do AWS IAM. Normalmente, você criaria um perfil do IAM com permissões e o atribuiria a outras identidades conforme necessário. Ele deve ter as permissões listadas para executar as ações a seguir.

Criar a aplicação do editor de consultas v2 (QEV2)

  • redshift:CreateQev2IdcApplication: usado para criar a aplicação do QEV2.

  • sso:CreateApplication: permite criar uma aplicação do Centro de Identidade do AWS IAM.

  • sso:PutApplicationAuthenticationMethod: concede acesso à autenticação do Redshift.

  • sso:PutApplicationGrant: usada para alterar as informações do emissor de tokens confiáveis.

  • sso:PutApplicationAccessScope: para configuração da aplicação do Redshift do Centro de Identidade do AWS IAM. Isso inclui o editor de consultas v2.

  • sso:PutApplicationAssignmentConfiguration: para segurança.

Descrever a aplicação do editor de consultas v2

  • redshift:DescribeQev2IdcApplications: usada para descrever a aplicação QEV2 do Centro de Identidade do AWS IAM.

Alterar a aplicação do editor de consultas v2

  • redshift:ModifyQev2IdcApplication: usada para alterar a aplicação QEV2 do Centro de Identidade do AWS IAM.

  • sso:UpdateApplication: usada para alterar a aplicação QEV2 do Centro de Identidade do AWS IAM.

Excluir a aplicação do editor de consultas v2

  • redshift:DeleteQev2IdcApplication: usado para excluir a aplicação do QEV2.

  • sso:DeleteApplication: usado para excluir a aplicação do QEV2.

nota

No SDK do Amazon Redshift, as seguintes APIs não estão disponíveis:

  • CreateQev2IdcApplication

  • DescribeQev2IdcApplications

  • ModifyQev2IdcApplication

  • DeleteQev2IdcApplication

Essas ações são específicas para realizar a integração do Centro de Identidade do AWS IAM com o QEV2 do Redshift no Console da AWS. Para obter mais informações, consulte Actions defined by Amazon Redshift.

Permissões necessárias para o administrador do banco de dados conectar novos recursos no console

Essas permissões são necessárias para conectar novos clusters provisionados ou grupos de trabalho do Amazon Redshift sem servidor durante o processo de criação. Se você tiver essas permissões, uma seleção será exibida no console para optar por se conectar à aplicação gerenciada pelo Centro de Identidade do AWS IAM para Redshift.

  • redshift:DescribeRedshiftIdcApplications

  • sso:ListApplicationAccessScopes

  • sso:GetApplicationAccessScope

  • sso:GetApplicationGrant

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.

Configuração do Redshift como uma aplicação gerenciada pela AWS com o Centro de Identidade do AWS IAM

Para o Centro de Identidade do AWS IAM gerenciar identidades para um cluster provisionado do Amazon Redshift ou um grupo de trabalho do Amazon Redshift sem servidor, o administrador do Redshift deve concluir as etapas para fazer do Redshift uma aplicação gerenciada pelo Centro de Identidade do AWS IAM:

  1. Selecione Integração com Centro de Identidade do AWS IAM no menu do console do Amazon Redshift ou do Amazon Redshift sem servidor e, depois, selecione Conectar-se ao Centro de Identidade do AWS IAM. A partir daí, você passa por uma série de seleções para preencher as propriedades da integração do Centro de Identidade do AWS IAM.

  2. Escolha um nome de exibição e um nome exclusivo para a aplicação gerenciada pelo Centro de Identidade do AWS IAM do Redshift.

  3. Especifique o namespace da organização. Trata-se normalmente de uma versão abreviada do nome da organização. Ela é adicionada como um prefixo para os perfis e os usuários gerenciados pelo Centro de Identidade do AWS IAM no banco de dados do Redshift.

  4. Selecione um perfil do IAM a ser usado. Esse perfil do IAM deve ser à parte de outros usados no Redshift, e recomendamos que não seja usado com outras finalidades. As permissões da política específica necessárias são as seguintes:

    • sso:DescribeApplication: necessária para criar uma entrada do provedor de identidades (IdP) no catálogo.

    • sso:DescribeInstance: usada para criar manualmente funções ou usuários federados do IdP.

  5. Configure conexões cliente e emissores de tokens confiáveis. A configuração de emissores de tokens confiáveis facilita a propagação de identidade confiável ao estabelecer um relacionamento com um provedor de identidades externo. A propagação de identidade possibilita que um usuário, por exemplo, faça logon em uma aplicação e acesse dados específicos em outra aplicação. Isso permite aos usuários coletar dados de locais diferentes com mais facilidade. Nesta etapa, no console, você define atributos para cada emissor de tokens confiáveis. Entre os atributos estão o nome e a declaração do público (ou aud claim), que talvez você precise obter dos atributos de configuração da ferramenta ou do serviço. Talvez você também precise fornecer o nome da aplicação do JSON Web Token (JWT) da ferramenta de terceiros.

    nota

    O aud claim exigido de cada ferramenta ou serviço de terceiros pode variar, com base no tipo de token, que pode ser um token de acesso emitido por um provedor de identidades ou outro tipo, como um token de ID. Cada fornecedor pode ser diferente. Quando você está implementando a propagação de identidade confiável e a integração com o Redshift, é necessário fornecer o valor aud correto para o tipo de token com o qual a ferramenta de terceiros envia para AWS. Verifique as recomendações do fornecedor de ferramentas ou serviços.

    Para obter informações detalhadas sobre a propagação de identidade confiável, consulte How trusted identity propagation works. Além disso, consulte a documentação beta do Centro de Identidade do AWS IAM que acompanha esta documentação.

Depois que o administrador do Redshift concluir as etapas e salvar a configuração, as propriedades do Centro de Identidade do AWS IAM serão exibidas no console do Redshift. Também é possível consultar a exibição de sistema SVV_IDENTITY_PROVIDERS para verificar as propriedades da aplicação. Isso inclui o nome e o namespace da aplicação. Você usa o namespace como prefixo para objetos de banco de dados do Redshift associados à aplicação. A conclusão dessas tarefas torna o Redshift uma aplicação compatível com o Centro de Identidade do AWS IAM. As propriedades no console incluem o status da integração. Ele indica Habilitado quando a integração está concluída. Depois desse processo, a integração do Centro de Identidade do AWS IAM poderá ser habilitada em cada novo cluster.

Depois da configuração, você poderá incluir usuários e grupos do Centro de Identidade do AWS IAM no Redshift escolhendo a guia Usuários ou Grupos e, depois, Atribuir.

Habilitação da integração do Centro de Identidade do AWS IAM para um novo cluster do Amazon Redshift ou um grupo de trabalho do Amazon Redshift sem servidor

O administrador do banco de dados configura novos recursos do Redshift para trabalhar em alinhamento com o Centro de Identidade do AWS IAM a fim de facilitar o logon e o acesso aos dados. Isso é realizado como parte das etapas para criar um cluster provisionado ou um grupo de trabalho de tecnologia sem servidor. Qualquer pessoa com permissões para criar recursos do Redshift pode realizar essas tarefas de integração do Centro de Identidade do AWS IAM. Para criar um cluster provisionado, você primeiro escolhe Criar cluster no console do Amazon Redshift. As etapas a seguir mostram como habilitar o gerenciamento do Centro de Identidade do AWS IAM para um banco de dados. (Isso não inclui todas as etapas para criar um cluster.)

  1. Escolha Habilitar para <your cluster name> na seção Integração com Centro de Identidade do IAM nas etapas de criação do cluster.

  2. Há uma etapa no processo quando você habilita a integração. Você faz isso escolhendo Habilitar integração com Centro de Identidade do IAM no console.

  3. Para o novo cluster ou grupo de trabalho, crie funções de banco de dados no Redshift usando comandos SQL. Este é o comando.

    CREATE ROLE <idcnamespace:rolename>;

    O namespace e o nome da função são os seguintes:

    • Prefixo do namespace do Centro de Identidade do IAM: esse é o namespace definido por você ao configurar a conexão entre o Centro de Identidade do AWS IAM e o Redshift.

    • Nome do perfil: esse perfil do banco de dados do Redshift deve coincidir com o nome do grupo no Centro de Identidade do AWS IAM.

    O Redshift se conecta ao Centro de Identidade do AWS IAM e busca as informações necessárias para criar e mapear o perfil do banco de dados para o grupo do Centro de Identidade do AWS IAM.

Quando um novo data warehouse é criado, o perfil do IAM especificado para a integração do Centro de Identidade do AWS IAM é automaticamente anexado ao cluster provisionado ou ao grupo de trabalho do Amazon Redshift sem servidor. Depois de inserir os metadados de cluster necessários e criar o recurso, você poderá verificar o status da integração do Centro de Identidade do AWS IAM nas propriedades. Se os nomes de grupo no Centro de Identidade do AWS IAM tiverem espaços, será necessário usar aspas no SQL ao criar o perfil correspondente.

Depois de habilitar o banco de dados do Redshift e criar funções, estará tudo pronto para você se conectar ao banco de dados usando o editor de consultas do Amazon Redshift v2 ou Amazon QuickSight. Os detalhes serão explicados mais detalhadamente nas seções a seguir.

Configuração do RedshiftIdcApplication padrão usando a API

A configuração é realizada pelo administrador de identidades. Com a API, você cria e preenche RedshiftIdcApplication, que representa a aplicação do Redshift no Centro de Identidade do AWS IAM.

  1. Para começar, é possível criar usuários e adicioná-los a grupos no Centro de Identidade do AWS IAM. Você faz isso no Console da AWS do Centro de Identidade do AWS IAM.

  2. Chame create-redshift-idc-application para criar uma aplicação do Centro de Identidade do AWS e torná-la compatível com o uso do Redshift. Você cria a aplicação preenchendo os valores necessários. O nome de exibição é o nome a ser mostrado no painel do Centro de Identidade do AWS. O ARN do perfil do IAM é um ARN com permissões para o Centro de Identidade do AWS IAM e que também pode ser assumido pelo Redshift.

    aws redshift create-redshift-idc-application ––idc-instance-arn 'arn:aws:sso:::instance/ssoins-1234a01a1b12345d' ––identity-namespace 'MYCO' ––idc-display-name 'TEST-NEW-APPLICATION' ––iam-role-arn 'arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole' ––redshift-idc-application-name 'myredshiftidcapplication'

    O exemplo a seguir mostra uma resposta RedshiftIdcApplication de exemplo retornada pela chamada para create-redshift-idc-application.

    "RedshiftIdcApplication": { "IdcInstanceArn": "arn:aws:sso:::instance/ssoins-1234a01a1b12345d", "RedshiftIdcApplicationName": "test-application-1", "RedshiftIdcApplicationArn": "arn:aws:redshift:us-east-1:012345678901:redshiftidcapplication:12aaa111-3ab2-3ab1-8e90-b2d72aea588b", "IdentityNamespace": "MYCO", "IdcDisplayName": "Redshift-Idc-Application", "IamRoleArn": "arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole", "IdcManagedApplicationArn": "arn:aws:sso::012345678901:application/ssoins-1234a01a1b12345d/apl-12345678910", "IdcOnboardStatus": "arn:aws:redshift:us-east-1:123461817589:redshiftidcapplication", "RedshiftIdcApplicationArn": "Completed", "AuthorizedTokenIssuerList": [ "TrustedTokenIssuerArn": ..., "AuthorizedAudiencesList": [...]... ]}
  3. É possível usar create-application-assignment para atribuir grupos específicos ou usuários individuais à aplicação gerenciada no Centro de Identidade do AWS IAM. Com isso, é possível especificar grupos para gerenciamento por meio do Centro de Identidade do AWS IAM. Se o administrador do banco de dados criar perfis de banco de dados no Redshift, os nomes de grupo no Centro de Identidade do AWS IAM serão mapeados para nomes de perfil no Redshift. As funções controlam as permissões no banco de dados. Consulte mais informações em Assign user access to applications in the AWS IAM Identity Center console.

  4. Depois de habilitar a aplicação, chame create-cluster e inclua o ARN da aplicação gerenciada pelo Redshift do Centro de Identidade do AWS IAM. Isso associa o cluster à aplicação gerenciada no Centro de Identidade do AWS IAM.

Associação de uma aplicação do Centro de Identidade do AWS IAM a um cluster ou grupo de trabalho existente

Se tiver um cluster ou grupo de trabalho existente que gostaria de habilitar para a integração do Centro de Identidade do AWS IAM, você poderá fazer isso executando comandos SQL. Você também pode executar comandos SQL para alterar as configurações da integração. Consulte mais informações em ALTER IDENTITY PROVIDER.

Também é possível remover um provedor de identidades existente. O exemplo a seguir mostra como CASCADE exclui funções e usuários anexados ao provedor de identidades.

DROP IDENTITY PROVIDER <provider_name> [ CASCADE ]

Configuração das permissões de usuário

Um administrador configura permissões para recursos variados, com base nos atributos de identidade dos usuários e nas associações de grupo, dentro do provedor de identidades ou diretamente no Centro de Identidade do AWS IAM. Por exemplo, o administrador do provedor de identidades pode adicionar um engenheiro de banco de dados a um grupo apropriado a essa função. Esse nome de grupo é mapeado para um nome de função de banco de dados do Redshift. A função dá ou restringe acesso a tabelas ou exibições específicas no Redshift.

Personas de administrador para conectar aplicações

Estas são as personas-chave para conectar aplicações de analytics à aplicação gerenciada pelo Centro de Identidade do AWS IAM para Redshift:

  • Administrador da aplicação: cria uma aplicação e configura com quais serviços ela permitirá trocas de tokens de identidade. Esse administrador também especifica quais usuários ou grupos têm acesso à aplicação.

  • Administrador de dados: configura acesso refinado aos dados. Usuários e grupos no Centro de Identidade do AWS IAM podem ser mapeados para permissões específicas.

Conexão com o Amazon Redshift usando o Centro de Identidade do AWS IAM por meio do Amazon QuickSight

Veja a seguir como usar o Amazon QuickSight para se autenticar com o Redshift quando ele está conectado e o acesso é gerenciado por meio do Centro de Identidade do AWS IAM: Authorizing connections from Amazon QuickSight to Amazon Redshift clusters. Essas etapas também se aplicam ao Amazon Redshift sem servidor.

Conexão com o Amazon Redshift usando o Centro de Identidade do AWS IAM por meio do Editor de Consultas v2 do Amazon Redshift

Ao concluir as etapas para configurar uma conexão do Centro de Identidade do AWS IAM com o Redshift, o usuário pode acessar o banco de dados e os objetos indicados no banco de dados por meio da identidade de namespace prefixado com base no Centro de Identidade do AWS IAM. Para obter mais informações sobre como se conectar aos bancos de dados do Redshift com logon no editor de consultas v2, consulte Working with query editor v2.

Consulta de dados por meio de AWS Lake Formation

O uso de AWS Lake Formation facilita controlar e proteger de maneira centralizada o data lake, além de oferecer acesso aos dados. A configuração da propagação de identidade para o Lake Formation por meio do Centro de Identidade do AWS IAM e do Redshift possibilita ao administrador permitir acesso refinado a um data lake do Amazon S3, com base nos grupos de provedores de identidades (IdP) da organização. Esses grupos são gerenciados por meio do Centro de Identidade do AWS IAM. Esta seção mostra como configurar alguns casos de uso, consultando um data lake e um compartilhamento de dados, que demonstram como utilizar o Centro de Identidade do AWS IAM com o Redshift para se conectar aos recursos controlados pelo Lake Formation.

Uso de uma conexão do Centro de Identidade do AWS IAM e do Redshift para consultar um data lake

Essas etapas abordam um caso de uso no qual você usa o Centro de Identidade do AWS IAM conectado ao Redshift para consultar um data lake controlado pelo Lake Formation.

Pré-requisitos

Este procedimento tem diversas etapas de pré-requisito:

  1. O Centro de Identidade do AWS IAM deve ser configurado para dar suporte à autenticação e ao gerenciamento de identidades com o Redshift. É possível habilitar o Centro de Identidade do AWS IAM pelo console e selecionar uma fonte do provedor de identidades (IdP). Depois disso, sincronize um conjunto dos usuários IdP com o Centro de Identidade do AWS IAM. Você também deve configurar uma conexão entre o Centro de Identidade do AWS IAM e o Redshift seguindo as etapas detalhadas anteriormente neste documento.

  2. Crie um cluster do Amazon Redshift e habilite o gerenciamento de identidades por meio do Centro de Identidade do AWS IAM nas etapas de configuração.

  3. Crie uma aplicação gerenciada do Centro de Identidade do AWS IAM para Lake Formation e a configure. Depois disso, vem a configuração da conexão entre o Centro de Identidade do AWS IAM e o Redshift. As etapas são as seguintes:

    1. Na AWS CLI, use o comando modify-redshift-idc-application para habilitar a integração do serviço Lake Formation com a aplicação gerenciada do Centro de Identidade do AWS IAM para Redshift. Essa chamada inclui o parâmetro service-integrations, que é definido como um valor de string da configuração que permite a autorização para o Lake Formation.

    2. Configure o Lake Formation usando o comando create-lake-formation-identity-center-configuration. Isso cria uma aplicação Centro de Identidade do AWS IAM para Lake Formation, visível no portal do Centro de Identidade do AWS IAM. O administrador deve definir o argumento ––cli-input-json, cujo valor é o caminho para um arquivo JSON que usa o formato padrão para todas as chamadas de API da CLI da AWS. Você deve incluir valores para o seguinte:

      • CatalogId: o ID do catálogo do Lake Formation.

      • InstanceArn: o valor ARN da instância do Centro de Identidade do AWS IAM.

Depois que o administrador concluir a configuração de pré-requisito, o administrador do banco de dados poderá criar um esquema externo com a finalidade de consultar o data lake.

  1. O administrador cria o esquema externo: o administrador do banco de dados do Redshift se conecta ao banco de dados e cria um esquema externo usando a seguinte instrução SQL:

    CREATE EXTERNAL SCHEMA if not exists my_external_schema from DATA CATALOG database 'my_lf_integrated_db' catalog_id '12345678901234';

    A especificação de um perfil do IAM não é necessária nesse caso, porque o acesso é gerenciado por meio do Centro de Identidade do AWS IAM.

  2. O administrador concede permissões: o administrador concede uso a um grupo do Centro de Identidade do AWS IAM, que concede permissões em recursos do Redshift. Isso é feito executando uma instrução SQL como a seguinte:

    GRANT USAGE ON SCHEMA "my_external_schema" to "MYCO:sales";

    Posteriormente, o administrador concederá permissões do Lake Formation em objetos, com base nos requisitos da organização, usando a CLI da AWS:

    aws lakeformation grant-permissions ...
  3. Os usuários executam consultas: neste momento, um usuário do Centro de Identidade do AWS IAM que faz parte do grupo de vendas, para fins ilustrativos, pode fazer logon por meio do Editor de Consultas v2 no banco de dados do Redshift. Eles podem acabar executando uma consulta que acessa uma tabela no esquema externo, como no seguinte exemplo:

    SELECT * from my_external_schema.table1;

Uso de uma conexão do Centro de Identidade do AWS IAM e do Redshift para se conectar a uma unidade de compartilhamento de dados

É possível acessar uma unidade de compartilhamento de dados por meio de um data warehouse do Redshift diferente quando o acesso é gerenciado por meio do Centro de Identidade do AWS IAM. Para isso, você executa uma consulta para configurar um banco de dados externo. Antes de concluir essas etapas, presume-se que você tenha uma conexão configurada entre o Redshift e o Centro de Identidade do AWS IAM e tenha criado a aplicação do AWS Lake Formation, conforme detalhado no procedimento anterior.

  1. Criação do banco de dados externo: o administrador cria um banco de dados externo para compartilhamento de dados, referenciando-o por meio do ARN. Este é um exemplo que mostra como fazer isso:

    CREATE DATABASE "redshift_external_db" FROM ARN 'arn:aws:glue:us-east-1:123456789012:database/redshift_external_db-iad' WITH NO DATA CATALOG SCHEMA;

    Nesse caso de uso, quando você está usando o Centro de Identidade do AWS IAM com Redshift para gerenciamento de identidades, o perfil do IAM não está incluído.

  2. O administrador configura permissões: depois de criar um banco de dados, o administrador vai conceder uso a um grupo do Centro de Identidade do AWS IAM. Isso concede permissões em recursos do Redshift:

    GRANT USAGE ON DATABASE "my_external_db" to "MYCO:sales";

    O administrador também concede permissões do Lake Formation em objetos usando a CLI da AWS:

    aws lakeformation grant-permissions ...
  3. Os usuários executam consultas: um usuário do grupo de vendas pode consultar uma tabela no banco de dados, com base nas permissões atribuídas:

    select * from redshift_external_db.public.employees;

Para obter mais informações sobre como conceder permissões em um data lake e conceder permissões em compartilhamentos de dados, consulte Granting permissions to users and groups. Para obter mais informações sobre como conceder uso a um esquema ou a um banco de dados, consulte GRANT.

Integração da aplicação ou da ferramenta com o OAuth usando um emissor de tokens confiáveis

É possível adicionar funcionalidade às ferramentas de cliente criadas para estabelecer conexão com o Redshift por meio da conexão do Centro de Identidade do AWS IAM. Se você já tiver configurado a integração do Redshift ao Centro de Identidade do AWS IAM, use as propriedades detalhadas nesta seção para configurar uma conexão.

Plug-in de autenticação para conexão com o Redshift usando o Centro de Identidade do AWS IAM

Você pode usar o Centro de Identidade do AWS IAM para se conectar ao Amazon Redshift usando os seguintes plug-ins de driver:

  • BrowserIdcAuthPlugin: esse plug-in facilita a integração perfeita de login único com o Centro de Identidade do AWS IAM. Ele cria uma janela do navegador para que os usuários façam login com as credenciais de usuário definidas nos provedores de identidades corporativas.

  • IdpTokenAuthPlugin: esse plug-in deve ser usado por aplicações que desejam gerenciar o fluxo de autenticação por conta própria, em vez de permitir que o driver do Amazon Redshift abra uma janela do navegador para autenticação do Centro de Identidade do AWS IAM. Ele aceita um token de acesso vendido do Centro de Identidade do AWS IAM ou um token da web JWT (JWT) do OpenID Connect (OIDC) de qualquer provedor de identidades da web conectado ao Centro de Identidade do AWS IAM, como Okta, PingOne e Microsoft Entra ID (Azure AD). A aplicação cliente é responsável por gerar esse token de acesso/JWT necessário.

Autenticação com BrowserIdcAuthPlugin

Use os seguintes nomes de plug-ins para se conectar usando BrowserIdcAuthPlugin, dependendo do driver do Amazon Redshift.

Driver Tecla de opção de conexão Valor Observações

JDBC

plugin_name

com.amazon.redshift.plugin.BrowserIdcAuthPlugin

É necessário inserir o nome da classe totalmente qualificado do plug-in ao se conectar.

ODBC

plugin_name

BrowserIdcAuthPlugin

Python

credentials_provider

BrowserIdcAuthPlugin

Não há nenhuma opção plugin_name disponível para o driver do Python. Em seu lugar, use credentials_provider.

O plug-in BrowserIdcAuthPlugin tem as seguintes opções adicionais de conexão:

Nome da opção Obrigatório? Descrição Exemplo

idc_region

Obrigatório

A Região da AWS onde a instância do Centro de Identidade do AWS IAM está localizada.

us-east-1

issuer_url

Obrigatório

O endpoint da instância do servidor do Centro de Identidade do AWS IAM. É possível encontrar esse valor usando o console do Centro de Identidade do AWS IAM.

https://identitycenter.amazonaws.com/ssoins-g5j2k70sn4yc5nsc

listen_port

Opcional

A porta que o driver do Amazon Redshift usa para receber a resposta auth_code do Centro de Identidade do AWS IAM por meio do redirecionamento do navegador.

7890

idc_client_display_name

Opcional

O nome que o cliente do Centro de Identidade do AWS IAM usa para a aplicação no pop-up de consentimento de login único do Centro de Identidade do AWS IAM.

Driver do Amazon Redshift

idp_response_timeout

Opcional

A quantidade de tempo, em segundos, que o driver do Redshift aguarda a conclusão do fluxo de autenticação.

60

É necessário inserir esses valores nas propriedades de conexão da ferramenta criada e usada para se conectar. Consulte mais informações na documentação das opções de conexão para cada driver em questão:

Autenticação com IdpTokenAuthPlugin

Use os seguintes nomes de plug-ins para se conectar usando IdpTokenAuthPlugin, dependendo do driver do Amazon Redshift.

Driver Tecla de opção de conexão Valor Observações

JDBC

plugin_name

com.amazon.redshift.plugin.IdpTokenAuthPlugin

É necessário inserir o nome da classe totalmente qualificado do plug-in ao se conectar.

ODBC

plugin_name

IdpTokenAuthPlugin

Python

credentials_provider

IdpTokenAuthPlugin

Não há nenhuma opção plugin_name disponível para o driver do Python. Em seu lugar, use credentials_provider.

O plug-in IdpTokenAuthPlugin tem as seguintes opções adicionais de conexão:

Nome da opção Obrigatório? Descrição

token

Obrigatório

O Centro de Identidade do AWS IAM forneceu um token de acesso ou um token web JSON (JWT) do OpenID Connect (OIDC) providenciado por um provedor de identidades da web vinculado ao Centro de Identidade do AWS IAM. A aplicação deve gerar esse token autenticando o usuário da aplicação com o Centro de Identidade do AWS IAM ou um provedor de identidades conectado ao Centro de Identidade do AWS IAM.

token_type

Obrigatório

O tipo de token usado para IdpTokenAuthPlugin. Os valores possíveis são os seguintes:

  • ACCESS_TOKEN: insira isso se você usar um token de acesso fornecido pelo Centro de Identidade do AWS IAM.

  • EXT_JWT: insira isso se você usar um JSON Web Token (JWT) do OpenID Connect (OIDC) providenciado por um provedor de identidades baseado na web conectado ao Centro de Identidade do AWS IAM.

É necessário inserir esses valores nas propriedades de conexão da ferramenta criada e usada para se conectar. Consulte mais informações na documentação das opções de conexão para cada driver em questão:

Solução de problemas de conexão do Editor de Consultas do Amazon Redshift v2

Essa lista detalha os erros que geralmente ocorrem e pode ajudar você a se conectar ao banco de dados do Redshift com o Editor de Consultas v2, usando uma identidade do Centro de Identidade do AWS IAM.

  • Erro: Problema de conexão: não há informações disponíveis sobre a sessão do Centro de Identidade. – Quando esse erro ocorrer, verifique as configurações de segurança e privacidade do navegador. Essas configurações do navegador, especialmente aquelas para cookies seguros, como o recurso Proteção Total de Cookies do Firefox, podem resultar em tentativas de conexão bloqueadas do Editor de Consultas do Amazon Redshift v2 com um banco de dados do Redshift. Siga as etapas de correção detalhadas para seu navegador:

    • Firefox: no momento, os cookies de terceiros são bloqueados por padrão. Clique no escudo na barra de endereço do navegador e alterne o botão para desativar a proteção contra rastreamento avançada para o Editor de Consultas v2.

    • Modo de navegação anônima do Chrome: por padrão, o modo de navegação anônima do Chrome bloqueia cookies de terceiros. Clique no ícone de olho na barra de endereço para permitir cookies de terceiros para o Editor de Consultas v2. Depois de alterar a configuração para permitir cookies, talvez você não veja o ícone de olho na barra de endereço.

    • Safari: em um Mac, abra o aplicativo Safari. Escolha Configurações e Avançado. Alternar para desativar: Bloquear todos os cookies.

    • Edge: escolha Configurações e Cookies e permissões de site. Depois, selecione Gerenciar e excluir cookies e dados do site e desative Bloquear cookies de terceiros.

    Se você tentar se conectar depois de alterar as configurações e continuar recebendo a mensagem de erro Problema de conexão: nenhuma informação de sessão do Centro de Identidade disponível, recomendamos que atualize a conexão com o Centro de Identidade do AWS IAM. Para fazer isso, clique com o botão direito do mouse na instância de banco de dados do Redshift e escolha Atualizar. É aberta uma nova janela, que pode ser usada para autenticação.

  • Erro: Problema de conexão: a sessão do Centro de Identidade expirou ou é inválida. – Após a integração de um cluster provisionado do Redshift ou de um grupo de trabalho do Redshift sem servidor com o Centro de Identidade do AWS IAM, um usuário pode receber esse erro ao tentar se conectar a um banco de dados do Redshift por meio do Editor de Consultas v2. Isso pode ocorrer após tentativas de conexão bem-sucedidas. Nesse caso, recomendamos que você faça a autenticação novamente. Para fazer isso, clique com o botão direito do mouse na instância de banco de dados do Redshift e escolha Atualizar. É aberta uma nova janela, que pode ser usada para autenticação.

  • Erro: Escopo inválido. As credenciais do usuário não estão autorizadas a se conectar ao Redshift. – Após a integração de um cluster provisionado do Redshift ou de um grupo de trabalho do Redshift sem servidor com o Centro de Identidade do AWS IAM para gerenciamento de identidades, um usuário pode receber esse erro ao tentar se conectar a um banco de dados do Redshift por meio do Editor de Consultas v2. Nesse caso, para que o Editor de Consultas v2 conecte e autentique com êxito um usuário por meio do Centro de Identidade do AWS IAM para acessar os recursos corretos, um administrador precisa atribuir o usuário à aplicação Redshift do Centro de Identidade do AWS IAM por meio do console do Redshift. Isso é concluído em Conexões do Centro de Identidade do IAM. Depois disso, o usuário pode estabelecer uma conexão bem-sucedida após uma hora, que é o limite do armazenamento em cache da sessão do Centro de Identidade do AWS IAM.

  • Erro: Não foi possível listar os bancos de dados. FATAL: falha na consulta quando o cluster é pausado automaticamente. – Quando um banco de dados do Amazon Redshift sem servidor está no estado ocioso, sem processar nenhum workload, ele pode permanecer em pausa quando você se conecta a uma identidade do Centro de Identidade do AWS IAM. Para corrigir isso, faça login com outro método de autenticação para retomar o grupo de trabalho sem servidor. Depois, conecte-se ao banco de dados com sua identidade do Centro de Identidade do AWS IAM.

  • Erro: Ocorreu um erro durante a tentativa de federação com o Centro de Identidade do AWS IAM. Um administrador do Amazon Redshift deve excluir e recriar a aplicação do QEV2 do Centro de Identidade do AWS IAM usando o console do Redshift. – Esse erro geralmente ocorre quando a instância da aplicação do Centro de Identidade do AWS IAM associada ao Editor de Consultas v2 é excluída. Para corrigir isso, um administrador do Amazon Redshift deve excluir e recriar as aplicações do Redshift e do Editor de Consultas v2 para o Centro de Identidade do AWS IAM. Isso pode ser feito no console do Redshift ou usando o comando da CLI https://docs.aws.amazon.com/cli/latest/reference/redshift/delete-redshift-idc-application.html.

Limitações

Estas limitações são aplicáveis:

  • Os drivers do Amazon Redshift são compatíveis com BrowserIdcAuthPlugin a partir das seguintes versões:

    • Driver JDBC do Amazon Redshift v2.1.0.30

    • Driver ODBC do Amazon Redshift v2.1.3

    • Driver Python do Amazon Redshift v2.1.3

  • Os drivers do Amazon Redshift são compatíveis com IdpTokenAuthPlugin a partir das seguintes versões:

    • Driver JDBC do Amazon Redshift v2.1.0.19

    • Driver ODBC do Amazon Redshift v2.0.0.9

    • Driver Python do Amazon Redshift v2.0.914

  • Não há suporte para a VPC aprimorada: a VPC aprimorada não é compatível quando você configura a propagação de identidade confiável do Redshift com o Centro de Identidade do AWS IAM. Para ter mais informações sobre a VPC aprimorada, consulte Roteamento aprimorado da VPC no Amazon Redshift.

  • Cache do Centro de Identidade do AWS IAM: o Centro de Identidade do AWS IAM armazena em cache as informações da sessão. Isso pode causar problemas de acesso imprevisíveis quando você tenta se conectar ao banco de dados do Redshift por meio do Editor de Consultas do Redshift v2. Isso ocorre porque a sessão associada do Centro de Identidade do AWS IAM no Editor de Consultas v2 permanece válida, mesmo em um caso em que o usuário do banco de dados está desconectado do Console da AWS. O cache expira após uma hora, o que normalmente soluciona qualquer problema.