Este guia explica como usar locatários do App Lifecycle Manager para organizar as unidades implantadas e como implantar recursos em projetos de locatários separados para isolar e gerenciar seus recursos.
Para uma visão geral dos locatários e projetos de locatários, consulte Locatários e projetos de locatários.
Antes de começar
Antes de criar projetos ou recursos de locatários:
- Crie uma configuração do Terraform, um repositório do Artifact Registry e um artefato que contenha seu aplicativo SaaS no projeto do produtor. Consulte Implantar uma instância de serviço com o App Lifecycle Manager para saber como configurar uma oferta de SaaS.
Ative as APIs exigidas pelo App Lifecycle Manager.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Verifique se você tem as contas de serviço e os papéis do Identity and Access Management necessários concedidos no projeto do produtor. Isso inclui a conta de serviço criada pelo usuário e as permissões concedidas à conta
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.comno projeto do produtor.
Configurar um projeto de locatário
Ao provisionar os recursos do locatário em projetos separados, seus recursos, políticas do IAM, cotas e configurações de rede são separados para cada um dos locatários, tornando menos provável que violações ou configurações incorretas com um locatário afetem os outros.
Será necessário:
- um projeto do produtor;
um projeto de locatário para cada um dos locatários.
Console
Para configurar projetos de locatários e produtores usando o Google Cloud console:
- Crie um projeto do produtor e um projeto de locatário para cada um dos locatários.
- Ative o faturamento nos projetos de locatários e produtores.
Ative as APIs exigidas pelo App Lifecycle Manager nos projetos de locatários.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Verifique se os projetos de locatários têm contas de serviço de acionamento com as permissões necessárias.
Para mais detalhes, consulte Contas de serviço do App Lifecycle Manager.
Você configurou os projetos de locatários e produtores. Depois de criar e ativar o faturamento para os projetos de produtores e locatários, você pode criar recursos de locatários e associar unidades a locatários.
gcloud
Para configurar projetos de produtores e locatários usando a Google Cloud CLI:
Crie o projeto do produtor e um projeto de locatário para cada um dos locatários:
gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id] gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]Substitua:
PRODUCER_PROJECT_ID: um identificador de string que representa o ID do projeto do produtor.TENANT_PROJECT_ID: um identificador de string que representa o ID do projeto do locatário.
Ative o faturamento nos projetos de locatários e produtores:
gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_IDSubstitua:
PRODUCER_PROJECT_ID: um identificador de string que representa o ID do projeto do produtor.TENANT_PROJECT_ID: um identificador de string que representa o ID do projeto do locatário.BILLING_ACCOUNT_ID: o ID da conta de faturamento que você quer associar ao projeto especificado.
Conceda à conta de serviço de acionamento os papéis necessários do Identity and Access Management para cada projeto de locatário:
gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \ --role=ROLESubstitua:
TENANT_PROJECT_ID: um identificador de string que representa o ID do projeto do locatário.PRODUCER_PROJECT_ID: um identificador de string que representa o ID do projeto do produtor.SERVICE_ACCOUNT: a conta de serviço a que você quer conceder papéis no projeto especificado.ROLE: o papel do Identity and Access Management a ser concedido.É necessário executar
gcloud projects add-iam-policy-bindingpara cada papel que você quer conceder à conta de serviço especificada (--role='roles/compute.admin', por exemplo).
Você configurou os projetos de locatários e produtores. Depois de criar e ativar o faturamento para os projetos de produtores e locatários, você pode criar recursos de locatários e associar unidades a locatários.
Criar um recurso de locatário
Crie um recurso locatário na sua oferta de SaaS para representar o cliente:
No Google Cloud console, acesse App Lifecycle Manager > Locatários.
Clique em Criar.
Na caixa Nome do locatário, insira um nome para o recurso do locatário.
Opcional: na caixa Recurso do cliente, forneça um recurso do consumidor com configurações definidas pelo consumidor para integração.
Na caixa Oferta de SaaS, selecione a oferta de SaaS que você quer associar ao locatário.
Na lista suspensa Região, selecione uma região em que os metadados do locatário serão armazenados.
Opcional: clique em Adicionar rótulo para adicionar um rótulo de par de chave-valor ao locatário.
Clique em Criar para criar o recurso do locatário.
Você criou um recurso de locatário.
Associar uma unidade a um locatário
Depois de criar um locatário e implantar uma unidade, você pode vinculá-los. Essa associação serve principalmente como uma tag organizacional que ajuda a organizar quais unidades pertencem a qual locatário.
Para mais informações sobre como implantar unidades, consulte Implantar uma VM com o App Lifecycle Manager.
Para associar uma unidade a um locatário:
No Google Cloud console, acesse App Lifecycle Manager > Locatários.
Clique no nome do locatário que você quer associar a uma unidade.
Clique em Editar.
Na seção Unidades associadas, clique em Adicionar unidade.
Selecione as unidades que você quer associar a esse locatário.
Clique em Concluído.
Clique em Salvar.
As unidades selecionadas estão associadas ao locatário indicado.
Provisionar uma nova unidade com variáveis de projeto de locatário
Ao provisionar uma unidade associada a um locatário, você precisa fornecer a variável tenant_project_id.
Acesse App Lifecycle Manager > Unidades no Google Cloud console.
Crie uma nova unidade associada ao tipo de unidade.
Clique em Provisionar.
Selecione a versão a ser provisionada para a unidade do locatário.
Selecione a conta de serviço de acionamento a que você concedeu permissões no projeto de locatário. Siga o princípio de privilégio mínimo e conceda apenas os papéis necessários para os recursos que estão sendo gerenciados.
Na seção Variáveis de entrada:
- Verifique se a variável
tenant_project_idestá listada conforme definida no arquivovariables.tfde configuração do Terraform. - Na caixa ID do projeto de locatário, forneça o nome do projeto de locatário.
- Forneça variáveis de entrada definidas na configuração do Terraform. Se você não tiver definido outras variáveis na configuração do Terraform, pule esta etapa.
- Verifique se a variável
Clique em Provisionar.
O App Lifecycle Manager aciona o Gerente de infraestrutura usando a conta de serviço de acionamento especificada. O Infrastructure Manager lê a variável tenant_project_id e cria a VM dentro desse projeto de locatário.
Provisionar novamente uma unidade com um novo lançamento
Ao provisionar novamente uma unidade atual com um novo lançamento, você precisa fornecer a variável tenant_project_id.
Acesse App Lifecycle Manager > Unidades no Google Cloud console.
Selecione a unidade associada ao tipo de unidade.
Clique em Editar provisionamento.
Selecione a versão criada com a configuração atualizada do Terraform.
Selecione a conta de serviço de acionamento a que você concedeu permissões no projeto de locatário. Siga o princípio de privilégio mínimo e conceda apenas os papéis necessários para os recursos que estão sendo gerenciados.
Na seção Variáveis de entrada:
- Verifique se a variável
tenant_project_idestá listada conforme definida no arquivovariables.tfde configuração do Terraform. - Na caixa ID do projeto de locatário, forneça o nome do projeto de locatário.
- Forneça variáveis de entrada definidas na configuração do Terraform. Se você não tiver definido outras variáveis na configuração do Terraform, pule esta etapa.
- Verifique se a variável
Clique em Atualizar.
O App Lifecycle Manager aciona o Gerente de infraestrutura usando a conta de serviço de acionamento especificada. O Infrastructure Manager lê a variável tenant_project_id e cria a VM dentro desse projeto de locatário.
A seguir
- Saiba como gerenciar dependências entre unidades.
- Saiba mais sobre como usar variáveis e o mapeamento de variáveis.
- Analise as permissões necessárias para contas de serviço.