Os desenvolvedores de aplicativos podem solicitar uma identidade de agente para agentes de IA executados no Google Kubernetes Engine (GKE). A identidade do agente é uma identidade por pod que pode ser vinculada criptograficamente a cada pod na carga de trabalho. Em seguida, os agentes podem fazer a autenticação nas APIs do Google Cloud usando a identidade do agente. É possível controlar quais recursos um agente pode acessar incluindo o agente como um principal nas políticas do Identity and Access Management (IAM). Este documento descreve como gerenciar o acesso a APIs e serviços do Google Cloud para agentes que usam uma identidade de agente.
Este documento é destinado a administradores de segurança e de plataforma que gerenciam a autorização de agentes implantados por desenvolvedores em clusters do GKE. Você precisa conhecer bem os seguintes tópicos:
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa, instale e inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
- Verifique se você tem um cluster do Autopilot ou um cluster padrão com a Federação de Identidade da Carga de Trabalho para GKE ativada e que executa a versão 1.37.0-gke.3503000 ou mais recente do GKE.
Funções exigidas
Para receber as permissões necessárias para gerenciar o acesso às APIs do Google Cloud para agentes, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto Google Cloud :
-
Criar políticas do IAM:
Administrador de segurança (
roles/iam.securityAdmin) -
Crie um bucket do Cloud Storage, faça upload de objetos e defina políticas do IAM:
Administrador do Storage (
roles/storage.admin) -
Implante cargas de trabalho em clusters do GKE:
Desenvolvedor do Kubernetes Engine (
roles/container.developer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Encontrar o identificador principal de um agente
Esta seção descreve como construir o identificador principal de um agente. É possível usar esse identificador em políticas do IAM para controlar quais recursos o agente pode acessar.
Qualquer carga de trabalho do agente que solicitar uma identidade de agente receberá uma string de identidade SPIFFE exclusiva para essa carga de trabalho. Quando o aplicativo chama as APIs do Google Cloud , as chamadas são autenticadas usando um token de acesso de identidade do agente que valida se a carga de trabalho tem uma identidade de agente. Esse token de acesso inclui um identificador principal do IAM para a carga de trabalho do agente, que pode ser incluído em políticas do IAM para controlar a quais recursos o agente tem acesso.
Ao criar suas políticas do IAM, você pode construir os identificadores principais dos agentes usando as seguintes informações:
- A hierarquia de recursos do projeto.
- O nome do cluster.
- O namespace do Kubernetes e a conta de serviço do Kubernetes nesse namespace.
Quando os desenvolvedores implantam agentes que recebem uma identidade correspondente ao identificador principal, o agente herda o acesso especificado na política.
Para encontrar o identificador principal a ser usado nas suas políticas, siga estas etapas:
Identifique o domínio de confiança da identidade. O domínio de confiança depende de se o projeto está em uma organização, da seguinte forma:
Projetos em uma organização:
agents.global.org-ORGANIZATION_ID.system.id.googSubstitua
ORGANIZATION_IDpelo ID da organização.Projetos que não estão em uma organização:
agents.global.proj-PROJECT_NUMBER.system.id.googSubstitua
PROJECT_NUMBERpelo número do projeto do cluster.
Identifique as seguintes informações sobre o cluster:
- O nome do cluster do GKE.
- O local do plano de controle do cluster, como
us-central1. - O namespace do Kubernetes em que os desenvolvedores implantam as cargas de trabalho.
- O nome da conta de serviço do Kubernetes que os desenvolvedores precisam usar para a carga de trabalho do agente.
Se você não souber, pergunte à equipe da plataforma. A equipe de plataforma precisa configurar os namespaces, as ServiceAccounts e as políticas de RBAC no cluster para que os agentes com diferentes requisitos de acesso recebam identidades diferentes.
Construa o identificador principal:
principal://TRUST_DOMAIN/resources/container/projects/PROJECT_NUMBER/locations/CONTROL_PLANE_LOCATION/clusters/CLUSTER_NAME/ns/KUBERNETES_NAMESPACE/sa/KUBERNETES_SERVICEACCOUNTSubstitua:
TRUST_DOMAIN: o domínio de confiança da identidade do agente.PROJECT_NUMBER: o número do projeto do cluster.CONTROL_PLANE_LOCATION: a região ou zona do plano de controle do cluster.CLUSTER_NAME: o nome do cluster.KUBERNETES_NAMESPACE: o nome do namespace do Kubernetes.KUBERNETES_SERVICEACCOUNT: o nome da conta de serviço do Kubernetes.
Usar políticas para controlar o acesso
Esta seção descreve como usar o identificador principal de um agente para controlar quais APIs e serviços do Google Cloud ele pode acessar. Para controlar o acesso, inclua o identificador principal em qualquer uma das seguintes políticas do IAM:
Depois de criar ou atualizar uma política, qualquer agente que solicitar uma identidade de agente e for executado nesse namespace e usar essa ServiceAccount terá o acesso que você especificar nas políticas.
Autorizar agentes a acessar o gerenciador de autenticação
O gerenciador de autenticação de identidade do agente é um broker de autenticação e um cofre de credenciais que os agentes podem usar para receber credenciais e acessar ferramentas e serviços externos, como a própria identidade do agente ou em nome de um usuário final. O gerenciador de autenticação pode ter um ou mais provedores de autenticação, cada um deles processando um fluxo específico de autenticação e aquisição de credenciais para um serviço específico. Para dar aos agentes do GKE acesso a provedores de autenticação específicos, siga estas etapas:
- Encontre o identificador principal do agente.
- Receba o nome do provedor de autenticação que o agente precisa acessar.
Conceda o papel de usuário da identidade do agente (
roles/agentidentity.user) no provedor de autenticação ao principal do agente:gcloud agent-identity auth-providers add-iam-policy-binding AUTH_PROVIDER_NAME \ --location=AUTH_PROVIDER_LOCATION \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/agentidentity.userSubstitua:
AUTH_PROVIDER_NAME: o nome do provedor de autenticação.AUTH_PROVIDER_LOCATION: a região do provedor de autenticação.PRINCIPAL_IDENTIFIER: o identificador principal do agente.
Outra opção é, para agentes registrados no Agent Registry, gerenciar o acesso aos provedores de autenticação criando uma vinculação de provedor de autenticação.