O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a publicação de blog
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:
-
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
azureindica 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.
-
-
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
rsgroupe um namespace chamadoaad, 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_idpara 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"; -
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"; -
Você também pode conceder permissões a usuários específicos.
GRANT SELECT on table foo to aad:alice@example.comObserve 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.