Os pipelines do AI Platform dependem dos papéis do Gerenciamento de identidade e acesso (IAM) para autorizar usuários, grupos e serviços quando os pipelines de machine learning (ML) acessam recursos do Google Cloud.
Este documento descreve os papéis necessários para:
- configurar o AI Platform Pipelines;
- executar o AI Platform Pipelines com uma conta de serviço gerenciada pelo usuário;
- acessar o AI Platform Pipelines como usuário.
Saiba mais sobre os conceitos do IAM e como ele funciona.
Papéis necessários para configurar o AI Platform Pipelines
Para implantar o AI Platform Pipelines, você precisa receber os papéis de leitor (roles/viewer
)
e administrador do Kubernetes Engine (roles/container.admin
) no projeto.
O papel de leitor fornece acesso de leitura a todos os recursos em um projeto. O papel de administrador do Kubernetes Engine fornece acesso total aos clusters do Kubernetes e aos objetos da API Kubernetes.
Para seguir o princípio do menor privilégio, configure o cluster do AI Platform Pipelines para usar o acesso granular. Para configurar o
cluster com acesso granular, você também precisa receber o papel de administrador da
conta de serviço (roles/iam.serviceAccountAdmin
) no projeto. O papel de Administrador da conta de serviço fornece acesso para criar e configurar contas de serviço do IAM.
Saiba mais sobre como conceder acesso a papéis do IAM.
Papel | Permissões |
---|---|
Leitor (roles/viewer ) |
Permissões para ações somente leitura que não afetam o estado, como ver (mas não modificar) recursos ou dados em um projeto. |
Administrador do Kubernetes Engine( Concede acesso ao gerenciamento total de clusters e dos respectivos objetos da API Kubernetes.
Para definir uma conta de serviço em nós, você também precisa ter o papel de usuário da conta de serviço ( Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Administrador da conta de serviço( Criar e gerenciar contas de serviço Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
Papéis necessários para executar o AI Platform Pipelines com uma conta de serviço gerenciada pelo usuário
Os pods em um cluster do Google Kubernetes Engine (GKE)
são autenticados no Google Cloud usando a conta de serviço do
cluster do GKE. Para facilitar a configuração e o uso do AI Platform Pipelines,
os clusters do GKE criados pelo AI Platform Pipelines usam a conta de serviço padrão
do Compute Engine com o
escopo de acesso https://www.googleapis.com/auth/cloud-platform
. Esse escopo
de acesso fornece acesso total aos recursos e APIs do Google Cloud que você
ativou no projeto, o que pode fornecer às cargas de trabalho no cluster
acesso excessivo ao Google Cloud.
Para atribuir permissões granulares às cargas de trabalho executadas no cluster do AI Platform Pipelines, crie uma conta de serviço para o cluster e conceda a ela acesso aos seguintes papéis no projeto:
- Leitor do Monitoring: o papel de leitor do Monitoring (
roles/monitoring.viewer
) fornece acesso de leitura a dados e configurações de monitoramento. - Gravador de métricas do Monitoring: o papel de gravador de métricas do Monitoring
(
roles/monitoring.metricWriter
) fornece acesso de gravação para que o cluster possa gravar métricas. - Gravador de registros: o papel de gravador de registros (
roles/logging.logWriter
) permite que o cluster grave entradas de registro. - Leitor de objetos do Storage: se você planeja criar imagens de contêiner personalizadas
para os pipelines armazenados no Container Registry, conceda ao
cluster do AI Platform Pipelines acesso ao papel de leitor de objetos do Storage
(
roles/storage.objectViewer
) no projeto.
Você também precisa conceder à sua conta de serviço acesso a quaisquer recursos ou APIs do Google Cloud usados pelos pipelines de ML.
- Configure o cluster do GKE para usar uma conta de serviço gerenciada pelo usuário.
- Saiba mais sobre papéis do IAM e como gerenciar de contas de serviço.
Role | Título | Descrição | Permissões |
---|---|---|---|
Leitor do Monitoring( Dá acesso somente leitura para receber e listar informações sobre todos os dados e configurações de monitoramento. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
||
Gravador da métrica de monitoramento( Dá acesso somente leitura a métricas. Concede exatamente as permissões necessárias para o agente do Cloud Monitoring e outros sistemas que enviam métricas. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
||
Gravador de registros( Concede permissões para gravar entradas de registro. Recursos de nível mais baixo em que você pode conceder esse papel:
|
|
||
Leitor de objetos do Storage( Dá acesso para visualizar objetos e metadados, exceto ACLs. Também pode listar os objetos em um bucket. Recursos de nível mais baixo em que é possível conceder esse papel:
|
|
Papéis necessários para acessar o AI Platform Pipelines como usuário
Para acessar um cluster do AI Platform Pipelines, cada usuário precisa receber o
papel de leitor de cluster do Kubernetes Engine (roles/container.clusterViewer
) e o papel de usuário da conta de serviço para a conta de serviço do cluster do Google Kubernetes Engine.
Role | Título | Descrição | Permissões |
---|---|---|---|
Leitor de cluster do Kubernetes Engine( Concede acesso para receber e listar clusters do GKE. |
|
Continue na próxima seção para saber como conceder aos usuários acesso ao papel de leitor de cluster do Kubernetes Engine e ao papel de usuário da conta de serviço.
Conceder acesso ao AI Platform Pipelines a um usuário
Use as instruções a seguir para conceder acesso ao cluster do AI Platform Pipelines a uma conta de usuário.
Abra o AI Platform Pipelines no console do Google Cloud.
Encontre seu cluster do AI Platform Pipelines. Anote o cluster e a zona para usar nas próximas etapas.
Abra uma sessão do Cloud Shell.
O Cloud Shell é aberto em um frame na parte inferior do Console do Google Cloud. Use o Cloud Shell para concluir o restante deste processo.
Execute o comando a seguir para definir o projeto padrão do Google Cloud para esta sessão do Cloud Shell.
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
Execute o seguinte comando para encontrar a conta de serviço que seu cluster do GKE usa.
gcloud container clusters describe CLUSTER_NAME --zone ZONE \ --format="flattened(nodePools[].config.serviceAccount)"
Substitua:
- CLUSTER_NAME: o nome do cluster do GKE;
- ZONE: a zona em que o cluster foi criado.
A resposta pode indicar que o cluster usa uma conta de serviço chamada
default
. Esse valor se refere à conta de serviço padrão do Compute Engine. Execute o comando a seguir para encontrar o nome completo dessa conta de serviço.gcloud iam service-accounts list \ --filter "compute@developer.gserviceaccount.com"
Saiba mais sobre a conta de serviço padrão do Compute Engine.
Conceda à sua conta de usuário o papel de usuário da conta de serviço na conta de serviço do cluster do GKE.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME \ --member=user:USERNAME \ --role=roles/iam.serviceAccountUser
Substitua:
- SERVICE_ACCOUNT_NAME: o nome da conta de serviço do cluster do GKE, que você encontrou na etapa anterior. Os nomes das contas de serviço são formatados como *@*.gserviceaccount.com.
- USERNAME: seu nome de usuário no Google Cloud.
Conceda à sua conta de usuário acesso ao papel de leitor de cluster do GKE no projeto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USERNAME --role roles/container.clusterViewer
Substitua:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- USERNAME: seu nome de usuário no Google Cloud.