Associar unidades a locatários
Neste início rápido, você vai modificar sua oferta de SaaS para associar a unidade de VM implantada a um recurso de locatário e provisionar a VM em um projeto de locatário dedicado de propriedade do locatário.
Essa abordagem aumenta o isolamento de recursos, permitindo gerenciar recursos para cada locatário separadamente e oferecer melhor segurança e conformidade para sua oferta de SaaS.
Vamos criar o cenário do Guia de início rápido sobre como implantar uma instância do MySQL com o App Lifecycle Manager, modificando-o para associar a unidade de VM implantada a um recurso de locatário e provisionar a VM em um projeto dedicado de propriedade do locatário:
- Crie um recurso de locatário no App Lifecycle Manager.
- Associe uma VM ao recurso do locatário.
- Configure o App Lifecycle Manager e sua configuração do Terraform para implantar recursos em um projeto de locatário separado.
- Resolva problemas comuns de permissão e ativação de API ao implantar entre projetos.
Ao final deste guia de início rápido, você vai criar a base para uma oferta de SaaS com vários locatários que permite definir configurações e políticas no nível do locatário criando locatários e associando-os a unidades.
Antes de começar
Antes de criar ou associar locatários a unidades, é preciso ter conhecimento dos fundamentos do ecossistema do App Lifecycle Manager e criar uma oferta de SaaS.
-
Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Verify that billing is enabled for your Google Cloud project.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Verify that billing is enabled for your Google Cloud project.
Implante uma instância do MySQL com o App Lifecycle Manager, incluindo a criação de uma configuração do Terraform, um repositório do Artifact Registry, uma oferta de SaaS, um tipo de unidade, uma unidade e componentes (incluindo
terraform-files.zip).- Verifique se as APIs listadas na seção Antes de começar do início rápido estão ativadas no projeto do produtor.
- Verifique se você tem as contas de serviço e os papéis do IAM 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.
Seu projeto produtor e todos os projetos de locatário precisam ser criados antes de você criar e associar os recursos de locatário. Para mais informações, consulte Configurar um projeto de locatário.
Criar e associar um recurso de locatário
É possível usar locatários para agrupar recursos de unidade. Crie um recurso de locatário na oferta de SaaS do projeto de produtor para representar seu cliente:
No console Google Cloud , acesse App Lifecycle Manager > Locatários.
Clique em Criar.
Na página Criar locatário, insira
vm-quickstart-tenantna caixa Nome do locatário.Na caixa Oferta de SaaS, selecione
vm-quickstart-saas-offering.No menu suspenso Região, selecione
us-central1.Clique em Adicionar bloco. Uma seção Nova unidade vai aparecer.
No menu suspenso Unidade, selecione a unidade
projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit.Clique em Concluído para associar o recurso
vm-quickstart-unitao recursovm-quickstart-tenant.Clique em Criar para criar o recurso de locatário. Você criou o recurso
vm-quickstart-tenante o associou ao recursovm-quickstart-unit. Essa associação serve principalmente como uma tag organizacional no console do Google Cloud , ajudando você a identificar quais unidades pertencem a qual locatário.
Criar uma versão do locatário
No console Google Cloud , acesse App Lifecycle Manager > Versões.
Na página Lançamentos, clique em Criar.
Na página Criar versão, insira
vm-quickstart-tenant-releasena caixa Nome da versão.Na caixa Tipo de unidade, selecione
vm-quickstart-unit-kind. Clique em Next.Na etapa Selecionar blueprint, clique na opção Selecionar uma imagem atual do Artifact Registry.
Na etapa Armazenar blueprint, clique em Procurar e selecione o artefato associado a
vm-quickstart-tenant-blueprint. Clique em Avançar.Clique em Criar. Você criou o recurso
vm-quickstart-tenant-release.
Criar um projeto de locatário e implantar uma unidade
No Início rápido para implantar uma instância do MySQL com o App Lifecycle Manager, você provisiona recursos do App Lifecycle Manager no mesmo projeto que contém a configuração da sua oferta de SaaS.
Neste guia de início rápido, você direciona o provisionamento de recursos para o projeto do locatário em vez do projeto do produtor.
Você precisará transmitir variáveis modificadas tenant_project_id e tenant_project_number durante o provisionamento da unidade.
Crie um projeto de locatário para implantar os arquivos
terraform-vm.zip:gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"Ative as APIs e conceda papéis do IAM no projeto do locatário. Para implantar unidades no projeto do locatário, é necessário ativar a API Compute Engine e conceder papéis do IAM no projeto do locatário.
Ativar APIs no projeto do locatário
Ative a API Compute Engine no projeto do locatário usando o console Google Cloud :
Acesse o seletor de projetos.
Clique em Selecionar um projeto.
Selecione
quickstart-tenant-project.Ative a API Compute Engine.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.Verifique se você tem os seguintes papéis no projeto: roles/compute.admin
Verificar os papéis
-
No console do Google Cloud , acesse a página IAM.
Acessar IAM - Selecione o projeto.
-
Na coluna Principal, encontre todas as linhas que identificam você ou um grupo no qual você está incluído. Para saber em quais grupos você está incluído, entre em contato com o administrador.
- Em todas as linhas que especificam ou incluem você, verifique a coluna Papel para ver se a lista de papéis inclui os papéis necessários.
Conceder os papéis
-
No console do Google Cloud , acesse a página IAM.
Acessar IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Clique em Selecionar um papel e pesquise o papel.
- Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
- Clique em Salvar.
-
Provisionar uma unidade com variáveis do projeto de locatário
No projeto produtor, provisione uma nova unidade com as variáveis de entrada do projeto de locatário:
Acesse o seletor de projetos.
Clique em Selecionar um projeto.
Selecione o projeto do produtor.
Acesse Gerenciador do ciclo de vida do app > Unidades no console do Google Cloud .
Selecione o recurso
vm-quickstart-unit.Clique em Provisionar.
Selecione o recurso
vm-quickstart-tenant-release.Selecione a conta de serviço de ação a que você concedeu permissões no projeto do locatário.
Na seção Variáveis de entrada:
- A variável
tenant_project_idé listada como você a definiu emvariables.tf. - Na caixa ID do projeto de locatário, insira
quickstart-tenant-project.
- A variável
Clique em Provisionar.
O App Lifecycle Manager 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 de locatário.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- No prompt, digite o ID do projeto e clique em Encerrar.
A seguir
- Saiba como configurar projetos e recursos de locatário.
- Use variáveis e mapeamento de variáveis para orquestração sofisticada de ofertas de SaaS, incluindo provisionamento automatizado de recursos.