Este guia explica como usar locatários do ambiente de execução de SaaS para organizar suas unidades implantadas e como implantar recursos em projetos de locatário separados para isolar e gerenciar seus recursos.
Para uma visão geral dos locatários e projetos de locatário, consulte Locatários e projetos de locatário.
Antes de começar
Antes de criar projetos ou recursos de locatário:
- 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 ambiente de execução do SaaS para saber como configurar uma oferta de SaaS.
Ative as APIs necessárias para o ambiente de execução de SaaS.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.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
Quando você provisiona os recursos do locatário em projetos separados, os recursos, as políticas do IAM, as cotas e as configurações de rede são separados para cada um dos locatários. Isso reduz a probabilidade de violações ou erros de configuração em um locatário afetarem os outros.
Será necessário:
- um projeto do produtor e
um projeto de locatário para cada um dos seus locatários.
Console
Para configurar projetos de locatário e produtor usando o console Google Cloud :
- Crie um projeto de produtor e um projeto de locatário para cada um dos seus locatários.
- Ative o faturamento nos projetos de locatário e produtor.
Ative as APIs necessárias para a SaaS Runtime nos projetos do locatário.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Verifique se os projetos de locatário têm contas de serviço de atuação com as permissões necessárias.
Para mais detalhes, consulte Contas de serviço do ambiente de execução do SaaS.
Você configurou os projetos do locatário e do produtor. Depois de criar e ativar o faturamento para seus projetos de produtor e locatário, você pode criar recursos de locatário e associar unidades a locatários.
gcloud
Para configurar projetos de produtor e locatário usando a Google Cloud CLI:
Crie seu projeto de produtor e um projeto de locatário para cada um dos seus 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ário e produtor:
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 atuação 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ário e produtor. Depois de criar e ativar o faturamento para seus projetos de produtor e locatário, você pode criar recursos de locatário 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 console do Google Cloud , acesse SaaS Runtime > Locatários.
Clique em Criar.
Na caixa Nome do locatário, insira um nome para o recurso de 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 que você quer associar ao locatário.
No menu suspenso Região, selecione uma região em que os metadados do locatário serão armazenados.
Opcional: clique em Adicionar rótulo para incluir um rótulo de par de chave-valor no seu locatário.
Clique em Criar para criar o recurso de 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, é possível vinculá-los. Essa associação serve principalmente como uma tag organizacional que ajuda você a organizar quais unidades pertencem a qual locatário.
Para mais informações sobre como implantar unidades, consulte Implantar uma VM com o ambiente de execução de SaaS.
Para associar uma unidade a um locatário:
No console do Google Cloud , acesse SaaS Runtime > 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 este 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 do projeto de locatário
Ao provisionar uma unidade associada a um locatário, você precisa informar a variável tenant_project_id.
Navegue até SaaS Runtime > Unidades no console Google Cloud .
Crie uma nova unidade associada ao tipo de unidade.
Clique em Provisionar.
Selecione Liberar para provisionar na unidade do locatário.
Selecione a conta de serviço de ação a que você concedeu permissões no projeto do locatário. Siga o princípio de privilégio mínimo e conceda apenas as funções necessárias para os recursos gerenciados.
Na seção Variáveis de entrada:
- Verifique se a variável
tenant_project_idlistada está definida como você a definiu no arquivo de configuraçãovariables.tfdo Terraform. - Na caixa ID do projeto de locatário, informe 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 ambiente de execução do SaaS aciona o Infrastructure Manager 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 do locatário.
Fazer o reprovisionamento de uma unidade com uma nova versão
Ao provisionar novamente uma unidade com uma nova versão, você precisa fornecer a variável tenant_project_id.
Navegue até SaaS Runtime > Unidades no console Google Cloud .
Selecione a unidade associada ao tipo de unidade.
Clique em Editar provisionamento.
Selecione a versão que você criou com a configuração atualizada do Terraform.
Selecione a conta de serviço de ação a que você concedeu permissões no projeto do locatário. Siga o princípio de privilégio mínimo e conceda apenas as funções necessárias para os recursos gerenciados.
Na seção Variáveis de entrada:
- Verifique se a variável
tenant_project_idlistada está definida como você a definiu no arquivo de configuraçãovariables.tfdo Terraform. - Na caixa ID do projeto de locatário, informe 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 ambiente de execução do SaaS aciona o Infrastructure Manager 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 do locatário.
A seguir
- Saiba como gerenciar dependências entre unidades.
- Saiba mais sobre como usar variáveis e mapeamento de variáveis.
- Revise as permissões necessárias para contas de serviço.