Share via


Injeção secreta em terminais online (pré-visualização)

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

A injeção secreta no contexto de um ponto de extremidade online é um processo de recuperar segredos (como chaves de API) de armazenamentos secretos e injetá-los em seu contêiner de usuário que é executado dentro de uma implantação online. Os segredos são eventualmente acessados com segurança por meio de variáveis de ambiente, que são usadas pelo servidor de inferência que executa seu script de pontuação ou pela pilha de inferência que você traz com uma abordagem de implantação BYOC (bring your own container).

Importante

Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.

Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Declaração do problema

Ao criar uma implantação online, convém usar segredos de dentro da implantação para acessar serviços externos. Alguns desses serviços externos incluem o serviço OpenAI do Microsoft Azure, os Serviços de IA do Azure e a Segurança de Conteúdo do Azure AI.

Para usar os segredos, você precisa encontrar uma maneira de passá-los com segurança para o contêiner de usuário que é executado dentro da implantação. Não recomendamos que você inclua segredos como parte da definição de implantação, pois essa prática exporia os segredos na definição de implantação.

Uma abordagem melhor é armazenar os segredos em armazenamentos secretos e, em seguida, recuperá-los com segurança de dentro da implantação. No entanto, essa abordagem coloca seu próprio desafio: como a implantação deve autenticar-se nos armazenamentos secretos para recuperar segredos. Como a implantação online executa seu contêiner de usuário usando a identidade do ponto de extremidade, que é uma identidade gerenciada, você pode usar o RBAC do Azure para controlar as permissões da identidade do ponto de extremidade e permitir que o ponto de extremidade recupere segredos dos repositórios secretos. O uso dessa abordagem requer que você execute as seguintes tarefas:

  • Atribua as funções corretas à identidade do ponto de extremidade para que ele possa ler segredos dos repositórios secretos.
  • Implemente a lógica de pontuação para a implantação para que ela use a identidade gerenciada do ponto de extremidade para recuperar os segredos dos armazenamentos secretos.

Embora essa abordagem de usar uma identidade gerenciada seja uma maneira segura de recuperar e injetar segredos, a injeção secreta por meio do recurso de injeção secreta simplifica ainda mais o processo de recuperação de segredos para conexões de espaço de trabalho e cofres de chaves.

Identidade gerenciada associada ao ponto de extremidade

Uma implantação online executa seu contêiner de usuário com a identidade gerenciada associada ao ponto de extremidade. Essa identidade gerenciada, chamada de identidade de ponto de extremidade, é uma ID do Microsoft Entra que dá suporte ao Azure RBAC. Portanto, você pode atribuir funções do Azure à identidade para controlar as permissões necessárias para executar operações. A identidade do ponto de extremidade pode ser uma identidade atribuída pelo sistema (SAI) ou uma identidade atribuída pelo usuário (UAI). Você pode decidir qual desses tipos de identidades usar ao criar o ponto de extremidade.

  • Para uma identidade atribuída ao sistema, a identidade é criada automaticamente quando você cria o ponto de extremidade, e funções com permissões fundamentais (como a permissão de pull do Registro de Contêiner do Azure e o leitor de dados de blob de armazenamento) são atribuídas automaticamente.
  • Para uma identidade atribuída pelo usuário, você precisa criar a identidade primeiro e, em seguida, associá-la ao ponto de extremidade ao criar o ponto de extremidade. Você também é responsável por atribuir funções adequadas à UAI, conforme necessário.

Para obter mais informações sobre como usar identidades gerenciadas de um ponto de extremidade, consulte Como acessar recursos de pontos de extremidade com identidades gerenciadas e o exemplo de uso de identidades gerenciadas para interagir com serviços externos.

Atribuição de função à identidade do ponto de extremidade

As seguintes funções são exigidas pelos repositórios secretos:

Implementação da injeção secreta

Depois que segredos (como chaves de API) são recuperados de armazenamentos secretos, há duas maneiras de injetá-los em um contêiner de usuário que é executado dentro da implantação online:

  • Injete segredos você mesmo, usando identidades gerenciadas.
  • Injete segredos, usando o recurso de injeção secreta.

Ambas as abordagens envolvem duas etapas:

  1. Primeiro, recupere segredos dos armazenamentos secretos, usando a identidade do ponto de extremidade.
  2. Em segundo lugar, injete os segredos no recipiente do usuário.

Injeção secreta através da utilização de identidades geridas

Em sua definição de implantação, você precisa usar a identidade do ponto de extremidade para chamar as APIs de repositórios secretos. Você pode implementar essa lógica em seu script de pontuação ou em shell scripts que você executa em seu contêiner BYOC. Para implementar a injeção de segredos por meio do uso de identidades gerenciadas, consulte o exemplo de uso de identidades gerenciadas para interagir com serviços externos.

Injeção secreta através da funcionalidade de injeção secreta

Para usar o recurso de injeção secreta, em sua definição de implantação, mapeie os segredos (aos quais você deseja se referir) das conexões do espaço de trabalho ou do Cofre da Chave para as variáveis de ambiente. Essa abordagem não exige que você escreva nenhum código em seu script de pontuação ou em shell scripts que você executa em seu contêiner BYOC. Para mapear os segredos das conexões do espaço de trabalho ou do Cofre da Chave para as variáveis de ambiente, as seguintes condições devem ser atendidas:

  • Durante a criação do ponto de extremidade, se um ponto de extremidade online foi definido para impor o acesso a armazenamentos secretos padrão (conexões de espaço de trabalho no espaço de trabalho atual), sua identidade de usuário que cria a implantação sob o ponto de extremidade deve ter as permissões para ler segredos de conexões de espaço de trabalho.
  • A identidade do ponto de extremidade que a implantação usa deve ter permissões para ler segredos de conexões de espaço de trabalho ou do Cofre da Chave, conforme referenciado na definição de implantação.

Nota

  • Se o ponto de extremidade foi criado com êxito com um SAI e o sinalizador definido para impor o acesso a armazenamentos secretos padrão, o ponto de extremidade terá automaticamente a permissão para conexões de espaço de trabalho.
  • No caso em que o ponto de extremidade usou um UAI ou o sinalizador para impor o acesso a repositórios secretos padrão não foi definido, a identidade do ponto de extremidade pode não ter a permissão para conexões de espaço de trabalho. Nessa situação, você precisa atribuir manualmente a função para as conexões do espaço de trabalho à identidade do ponto de extremidade.
  • A identidade do ponto de extremidade não receberá automaticamente permissão para o Cofre de Chaves externo. Se você estiver usando o Cofre da Chave como um armazenamento secreto, precisará atribuir manualmente a função do Cofre da Chave à identidade do ponto de extremidade.

Para obter mais informações sobre como usar a injeção secreta, consulte Implantar modelos de aprendizado de máquina em pontos de extremidade online com injeção secreta (visualização).