Federação de um provedor de identidades (IdP) nativo para o Amazon Redshift - Amazon Redshift

Federação de um provedor de identidades (IdP) nativo para o Amazon Redshift

O gerenciamento de identidades e permissões para o Amazon Redshift é facilitado com a federação do provedor de identidades nativo porque ela utiliza o provedor de identidades existente para simplificar a autenticação e o gerenciamento de permissões. Para isso, ela possibilita o compartilhamento de metadados de identidade de seu provedor de identidades com o Redshift. Para a primeira iteração desse recurso, o provedor de identidades compatível é o Microsoft Azure Active Directory (Azure AD).

Para configurar o Amazon Redshift para que ele possa autenticar identidades do provedor de identidades de terceiro, inscreva o provedor de identidades no Amazon Redshift. Isso permite que o Redshift autentique usuários e funções definidos pelo provedor de identidades. Assim, você pode evitar a necessidade de executar o gerenciamento granular de identidades tanto no provedor de identidades de terceiro quanto no Amazon Redshift, porque as informações de identidade são compartilhadas.

Para obter informações sobre o uso de perfis de sessão que são transferidos de grupos de provedores de identidades (IdP), consulte PG_GET_SESSION_ROLES no Guia do desenvolvedor de banco de dados do Amazon Redshift.

Configurar o provedor de identidades no Amazon Redshift

Esta seção mostra as etapas de configuração do provedor de identidades e do Amazon Redshift para estabelecer comunicação para federação do provedor de identidades nativo. Você precisa ter uma conta ativa junto ao seu provedor de identidades. Antes de configurar o Amazon Redshift, você inscreve o Redshift como aplicação em seu provedor de identidades, concedendo consentimento ao administrador.

Conclua as seguintes etapas no Amazon Redshift:

  1. Você executa uma instrução SQL para inscrever o provedor de identidades, incluindo descrições dos metadados da aplicação do Azure. Para criar o provedor de identidades no Amazon Redshift, execute o comando a seguir depois de substituir os valores dos parâmetros issuer, client_id, client_secret e audience. Esses parâmetros são específicos do Microsoft Azure AD. Substitua o nome do provedor de identidades por um nome de sua escolha e o namespace por um nome exclusivo para conter usuários e funções do diretório do provedor de identidades.

    CREATE IDENTITY PROVIDER oauth_standard TYPE azure NAMESPACE 'aad' PARAMETERS '{ "issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/", "client_id":"<client_id>", "client_secret":"BUAH~ewrqewrqwerUUY^%tHe1oNZShoiU7", "audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"] }'

    O tipo azure indica que o provedor facilita especificamente a comunicação com o Microsoft Azure AD. Atualmente, esse é o único provedor de identidades de terceiro compatível.

    • issuer: o ID do emissor para confiar no token que é recebido. O identificador exclusivo para tenant_id é anexado ao emissor.

    • client_id: o identificador público exclusivo da aplicação inscrito no provedor de identidades. Ele pode ser chamado de ID da aplicação.

    • client_secret: um identificador secreto, ou senha, conhecido apenas pelo provedor de identidades e pela aplicação inscrita.

    • audience: o ID da aplicação atribuído à aplicação no Azure.

    Em vez de usar um segredo de cliente compartilhado, você pode definir parâmetros para especificar um certificado, uma chave privada e uma senha da chave privada ao criar o provedor de identidades.

    CREATE IDENTITY PROVIDER example_idp TYPE azure NAMESPACE 'example_aad' PARAMETERS '{"issuer":"https://sts.windows.net/2sdfdsf-d475-420d-b5ac-667adad7c702/", "client_id":"<client_id>", "audience":["https://analysis.windows.net/powerbi/connector/AmazonRedshift"], "client_x5t":"<certificate thumbprint>", "client_pk_base64":"<private key in base64 encoding>", "client_pk_password":"test_password"}';

    A senha da chave privada, client_pk_password, é opcional.

  2. Opcional: execute comandos SQL no Amazon Redshift para criar previamente usuários e funções. Isso facilita a concessão de permissões com antecedência. O nome da função no Amazon Redshift é semelhante ao seguinte: <Namespace>:<GroupName on Azure AD>. Por exemplo, quando você cria um grupo no Microsoft Azure AD chamado rsgroup e um namespace chamado aad, o nome da função é aad:rsgroup. Os nomes de usuário e função no Amazon Redshift são definidos a partir desses nomes de usuário e associações de grupo no namespace do provedor de identidades.

    O mapeamento de funções e usuários inclui a verificação do valor external_id para garantir que esteja atualizado. A ID externa mapeia para o identificador do grupo ou usuário no provedor de identidades. Por exemplo, a ID externa de uma função mapeia para a ID de grupo do Azure AD correspondente. Da mesma forma, a ID externa de cada usuário é mapeada para sua ID no provedor de identidades.

    create role "aad:rsgroup";
  3. Conceda permissões relevantes às funções de acordo com seus requisitos. Por exemplo:

    GRANT SELECT on all tables in schema public to role "aad:rsgroup";
  4. Você também pode conceder permissões a usuários específicos.

    GRANT SELECT on table foo to aad:alice@example.com

    Observe que a associação do perfil de um usuário externo federado está disponível somente na sessão desse usuário. Isso tem implicações na criação de objetos de banco de dados. Quando um usuário externo federado cria um visualização ou procedimento armazenado, por exemplo, o mesmo usuário não pode delegar permissão desses objetos a outros usuários e perfis.

Uma explicação sobre os namespaces

Um namespace mapeia um usuário ou uma função para um provedor de identidades específico. Por exemplo, o prefixo para usuários criados no AWS IAM é iam:. Esse prefixo evita colisões de nomes de usuário e possibilita o suporte a vários armazenamentos de identidades. Se o usuário alice@example.com da origem de identidade inscrita com o namespace aad fizer login, o usuário aad:alice@example.com será criado no Redshift se ele ainda não existir. Observe que um namespace de usuário e função tem uma função diferente de um namespace de cluster no Amazon Redshift, que é um identificador exclusivo associado a um cluster.

Como o login funciona com a federação do provedor de identidades (IdP) nativo

Para concluir a configuração preliminar entre o provedor de identidades e o Amazon Redshift, execute algumas etapas: primeiro, inscreva o Amazon Redshift como uma aplicação de terceiro em seu provedor de identidades, solicitando as permissões de API necessárias. Em seguida, crie usuários e grupos no provedor de identidades. Por último, inscreva o provedor de identidades no Amazon Redshift usando instruções SQL, as quais definem parâmetros de autenticação exclusivos do provedor de identidades. Como parte da inscrição do provedor de identidades no Redshift, atribua um namespace para garantir que os usuários e as funções sejam agrupados corretamente.

Quando o provedor de identidades é inscrito no Amazon Redshift, a comunicação entre o Redshift e o provedor de identidades é estabelecida. Um cliente pode então passar tokens e realizar a autenticação no Redshift como uma entidade de provedor de identidades. O Amazon Redshift usa as informações de associação de grupo de IdP a fim de fazer o mapeamento para funções do Redshift. Se o usuário ainda não existir no Redshift, ele será criado. Serão criadas funções mapeadas para grupos de provedores de identidade se elas não existirem. O administrador do Amazon Redshift concede permissão nas funções, e os usuários podem executar consultas e outras tarefas de banco de dados.

As seguintes etapas descrevem como funciona a federação do provedor de identidades nativo quando um usuário faz login:

  1. Quando um usuário faz login usando a opção de IdP nativo, por meio do cliente, o token do provedor de identidades é enviado do cliente ao driver.

  2. O usuário é autenticado. Se o usuário ainda não existir no Amazon Redshift, será criado um novo usuário. O Redshift mapeia os grupos de provedores de identidade do usuário para funções do Redshift.

  3. As permissões são atribuídas com base nas funções do Redshift do usuário. Elas são concedidas a usuários e funções por um administrador.

  4. O usuário pode consultar o Redshift.

Usar ferramentas de cliente para desktop para se conectar ao Amazon Redshift

Para obter instruções sobre como usar a federação do provedor de identidades nativo para se conectar ao Amazon Redshift com o Power BI, consulte a publicação de blog Integrate Amazon Redshift native IdP federation with Microsoft Azure Active Directory (AD) and Power BI (Integração da federação do IdP nativo do Amazon Redshift com o Microsoft Azure Active Directory (AD) e Power BI). Ela descreve uma implementação detalhada da configuração de IdP nativo do Amazon Redshift com o Azure AD. Além disso, detalha as etapas para configurar a conexão do cliente para o Power BI Desktop ou o serviço Power BI. As etapas incluem registro de aplicações, configuração de permissões e configuração de credenciais.

Para saber como integrar a federação de IdP nativa do Amazon Redshift com o Azure AD, usando o Power BI Desktop e o JDBC Client-SQL Workbench/J, assista ao seguinte vídeo:

Para obter instruções sobre como usar a federação do provedor de identidades nativo para se conectar ao Amazon Redshift com um cliente SQL, especificamente DBeaver ou SQL Workbench/J, consulte a publicação de blog Integrate Amazon Redshift native IdP federation with Microsoft Azure AD using a SQL client (Integração da federação do IdP nativo do Amazon Redshift com o Microsoft Azure AD usando um cliente SQL).