Esta página descreve como partilhar tipos e fornecedores de tipos que pertencem ao seu projeto com outros projetos. Por exemplo, suponha que tem um projeto responsável pela manutenção de fornecedores de tipos pré-aprovados para a sua empresa. Quer poder partilhar estes fornecedores de tipos desse projeto com outros projetos e usar o projeto como um repositório central de tipos. Da mesma forma, também pode usar este método para partilhar tipos compostos entre projetos.
Para configurar o acesso, um proprietário do projeto que detém o tipo tem de conceder a função deploymentmanager.typeViewer
(beta) à conta de serviço do projeto que quer consumir os tipos. Também têm de
conceder a função aos utilizadores que querem ver e listar tipos de outro projeto.
Antes de começar
- Se quiser usar os exemplos de linhas de comando neste guia, instale a ferramenta de linhas de comando`gcloud`.
- Se quiser usar os exemplos de API neste guia, configure o acesso à API.
- Leia acerca das configurações do Deployment Manager.
- Leia acerca dos tipos.
- Leia a documentação da gestão de identidade e de acesso (IAM).
Limitações
Seguem-se as restrições para usar esta funcionalidade:
- A atribuição da função
deploymentmanager.typeViewer
concede autorizações a todos os tipos no projeto específico. Não é possível limitar a partilha a tipos individuais. - Não é possível conceder esta função a
allAuthenticatedUsers
nem aallUsers
.
Conceder a um projeto acesso a tipos de utilização
Para conceder acesso a tipos que pertencem a outros projetos, o proprietário do projeto que detém os tipos em questão tem de conceder a função deploymentmanager.typeViewer
ao serviço de conta das APIs Google do projeto que quer consumir os tipos.
- Aceda à página IAM na Google Cloud consola do projeto que vai consumir os tipos.
- Se lhe for pedido, selecione o seu projeto na lista.
Procure a conta de serviço das APIs Google, que tem o endereço de email no seguinte formato:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Tome nota do endereço de email acima. Em seguida, um proprietário do projeto onde os tipos pretendidos residem pode conceder à conta de serviço das APIs Google a função
roles/deploymentmanager.typeViewer
.Consola
- Enquanto ainda estiver na Google Cloud consola, aceda à página IAM do projeto que contém os tipos que quer partilhar.
- Selecione o projeto na lista de projetos.
- Clique no botão Adicionar para adicionar um novo membro.
- Na caixa Membros, introduza o endereço de email da conta de serviço.
- Expanda o menu pendente Funções e selecione Outro > Visitante de tipos do Deployment Manager (beta).
- Clique em Adicionar para adicionar a conta.
gcloud
Com a CLI do Google Cloud, adicione uma associação à política do IAM para o projeto:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/deploymentmanager.typeViewer
where:
[PROJECT_ID]
é o ID do projeto que contém as imagens que quer partilhar.[SERVICE_ACCOUNT_EMAIL]
é o email da conta de serviço no projeto com o qual quer partilhar tipos.
Por exemplo:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/deploymentmanager.typeViewer
API
Na API, faça um pedido
POST
para o seguinte URL, onde[PROJECT_ID]
é o ID do projeto que contém os tipos que quer partilhar.POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
O corpo do pedido deve conter a lista de associações que quer aplicar a este projeto. A função
roles/deploymentmanager.typeViewer
deve fazer parte da associação. Por exemplo:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com" ] }, { "role": "roles/deploymentmanager.typeViewer", "members": [ "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] }
}
Usar tipos de outros projetos na sua configuração
Depois de ter acesso aos seus tipos, pode especificar o tipo nas configurações através da sintaxe. Para tipos compostos:
type: [PROJECT_ID]/composite:[TYPE]
Para fornecedores de tipos:
type: [PROJECT_ID]/[TYPE]:[COLLECTION]
Onde:
[PROJECT_ID]
é o ID do projeto proprietário do tipo.[TYPE]
é o nome do fornecedor do tipo ou do tipo composto.[COLLECTION]
é o recurso específico que está a criar. Isto só é aplicável a tipos base. Para mais informações sobre como especificar tipos base, leia o artigo Chamar um fornecedor de tipos numa configuração.
Por exemplo, se o ID do projeto for my-type-repository
, pode fornecer a seguinte especificação de tipo:
resources: - name: a-special-vm type: my-type-repository/composite:autoscaled-igm properties: ...
Conceder aos utilizadores a capacidade de listar e ver tipos
A concessão da função deploymentmanager.typeViewer
à conta de serviço do projeto
permite que o projeto implemente estes tipos nas suas configurações, mas não
permite que os utilizadores vejam ou listem estes tipos. Se quiser conceder a utilizadores individuais a capacidade de ver tipos, tem de conceder a função deploymentmanager.typeViewer
a cada utilizador.
Por exemplo, para que a Joana possa executar o comando
gcloud beta deployment-manager types list --project another-project
para um projeto que não lhe pertence, o proprietário de another-project
tem de conceder à Joana a função deploymentmanager.typeViewer
.
Usando a CLI gcloud, pode conceder a função a Jane da seguinte forma:
gcloud projects add-iam-policy-binding another-project \
--member user:jane@gmail.com --role deploymentmanager.typeViewer
Para obter instruções abrangentes sobre como adicionar e remover funções de utilizadores, leia a documentação sobre como conceder, alterar e revogar o acesso a membros do projeto.
O que se segue?
- Leia acerca de outras funções de IAM que pode conceder.
- Saiba mais sobre as contas de serviço.