O AI Platform Prediction usa o gerenciamento de identidade e acesso (IAM) para gerenciar o acesso aos recursos. Para conceder acesso a um recurso, atribua um ou mais papéis a um usuário, um grupo ou uma conta de serviço. Para compartilhar um modelo, conceda um papel que dê acesso ao seu modelo e às versões dele.
Este guia se concentra em dois papéis predefinidos do AI Platform Prediction usados para conceder acesso aos recursos de modelo:
- Proprietário do modelo do AI Platform Prediction
- Usuário do modelo do AI Platform Prediction
Para detalhes sobre outros papéis, consulte a explicação completa de todos os papéis de IAM disponíveis para uso com o AI Platform Prediction.
Antes de começar
- Treine seu modelo de machine learning.
- Implante seu modelo no AI Platform Prediction.
Papéis do modelo
Os papéis Proprietário do modelo e Usuário do modelo do AI Platform Prediction concedem permissões variáveis a um recurso de modelo específico.
Compartilhe modelos com indivíduos ou serviços concedendo a eles o papel de usuário do modelo.
Título do papel | Nome do papel | Recursos |
---|---|---|
Proprietário do modelo do AI Platform Prediction |
Acesso total ao modelo e às respectivas versões. Este papel é concedido automaticamente ao usuário que cria o modelo. |
|
Usuário do modelo do AI Platform Prediction |
Permissões para ler o modelo e as respectivas versões e usá-los para predição. Esse papel facilita o compartilhamento de modelos específicos. |
Como conceder acesso a um modelo a indivíduos e contas de serviço
Neste exemplo, você aprenderá a conceder os papéis de proprietário ou usuário do modelo a indivíduos e contas de serviço para editar a política de IAM de um modelo específico. É possível editar o arquivo de política usando a API, gcloud
ou no console do Google Cloud.
Console
Compartilhar um modelo com um usuário ou conta de serviço
Abra a página "Modelos" do AI Platform Prediction
Marque a caixa de seleção de cada modelo que você quer compartilhar.
Clique no botão Mostrar o painel de informações no canto superior direito para exibir a guia Permissões.
No campo Adicionar membros, adicione as contas do Google dos usuários com que você quer compartilhar o modelo. Por exemplo, "email1@gmail.com".
No campo suspenso Selecionar papel, escolha o papel que você quer adicionar aos usuários. Para compartilhar um recurso de modelo, selecione Proprietário do modelo do ML Engine ou Usuário do modelo do ML Engine.
Se você não tem certeza sobre qual papel selecionar, veja mais detalhes sobre papéis de modelo.
Clique no botão Adicionar ao lado do campo suspenso Selecionar um papel para finalizar suas seleções de papel.
A página do console do Google Cloud é atualizada e exibe os papéis que você atribuiu na guia Permissões com uma lista de membros associados a eles.
Para interromper o compartilhamento de um modelo com um usuário ou conta de serviço, clique no ícone da lixeira ao lado do ID da conta.
gcloud
Como modificar uma política de modelo editando o arquivo de política diretamente
Use arquivos JSON ou YAML com os comandos gcloud
. Este exemplo usa JSON.
Acesse a política que você quer modificar e grave-a em um arquivo JSON.
gcloud ai-platform models get-iam-policy <MODEL_NAME> --format json > iam.json
Abra o arquivo de política (
iam.json
neste exemplo) ou executecat iam.json
para ver a política. Na política de exemplo a seguir, a conta de serviço é atribuída ao papel de proprietário do modelo do AI Platform Prediction para que tenha acesso à previsão on-line.{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] } ], "etag": "BwVUJYGz8M4=", }
Com um editor de texto, atualize seu arquivo
iam.json
da maneira a seguir. Adicione um novo objeto à matrizbindings
que define os membros do grupo e o papel desses membros. Por exemplo, para conceder o papelroles/ml.modelUser
ao usuárioemail2@gmail.com
, altere o exemplo mostrado acima da seguinte maneira:{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] }, { "role": "roles/ml.modelUser", "members": [ "user:email2@gmail.com" ] } ], "etag": "BwVUJYGz8M4=", }
Atualize a política do projeto. Basta executar o seguinte comando:
gcloud ai-platform models set-iam-policy <MODEL_NAME> iam.json
O comando gera a política atualizada no YAML:
bindings: - members: - user:email1@gmail.com - serviceAccount:otherapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
Como modificar uma política com comandos de vinculação de políticas
Use os comandos add-iam-policy-binding
e remove-iam-policy-binding
para conceder, revogar e atualizar o acesso aos modelos.
Compartilhar um modelo com um usuário
Use o comando
add-iam-policy-binding
para adicionar um usuário a uma política de modelo atual do AI Platform Prediction da seguinte maneira:gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \ --member user:email3@gmail.com --role roles/ml.modelUser
A política atualizada é exibida:
bindings: - members: - user:email1@gmail.com - serviceAccount:otherapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com - user:email3@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
Compartilhar um modelo com um serviço
Use o comando
add-iam-policy-binding
para adicionar uma conta de serviço a uma política de modelo atual do AI Platform Prediction da seguinte forma:gcloud ai-platform models add-iam-policy-binding <MODEL_NAME> \ --member=serviceAccount:newserviceapp@appspot.gserviceaccount.com \ --role=roles/ml.modelOwner
A política atualizada é exibida:
bindings: - members: - user:email1@gmail.com - serviceAccount:otherapp@appspot.gserviceaccount.com - serviceAccount:newserviceapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com - user:email3@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
Parar de compartilhar um modelo
Para parar de compartilhar um modelo com um usuário ou serviço, use o comando
remove-iam-policy-binding
para remover o usuário ou serviço de uma política de modelo atual do AI Platform Prediction. Neste exemplo, removemos o proprietário do modeloemail1@gmail.com
da política.gcloud ai-platform models remove-iam-policy-binding <MODEL_NAME> \ --member=user:email1@gmail.com \ --role=roles/ml.modelOwner
A política atualizada é exibida:
bindings: - members: - serviceAccount:otherapp@appspot.gserviceaccount.com - serviceAccount:newserviceapp@appspot.gserviceaccount.com role: roles/ml.modelOwner - members: - user:email2@gmail.com - user:email3@gmail.com role: roles/ml.modelUser etag: BwVUJYGz8M4=
API REST
Como modificar a política por meio da API JSON
Acesse a política existente enviando a seguinte solicitação:
GET https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy
O comando retorna a política atual na resposta:
{ "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] } ] }
Depois que você tiver modificado a política, atualize-a ao enviar a seguinte solicitação:
POST https://ml.googleapis.com/v1/projects/<project>/models/<model>:setIamPolicy
O comando retorna a política atualizada na resposta. Neste exemplo, adicionamos o usuário
email2@gmail.com
como um usuário do modelo:{ "policy": { "bindings": [ { "role": "roles/ml.modelOwner", "members": [ "serviceAccount:my-other-app@appspot.gserviceaccount.com", "user:email1@gmail.com" ] }, { "role": "roles/ml.modelUser", "members": [ "user:email2@gmail.com" ] } ] } }
Para conseguir um token de acesso:
gcloud auth print-access-token
Ao chamar a API, transmita o valor do token como um token do portador em um cabeçalho de autorização:
curl -s -H 'Authorization: Bearer <ACCESS_TOKEN>' \ https://ml.googleapis.com/v1/projects/<project>/models/<model>:getIamPolicy