Associar unidades a locatários

Neste guia de 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 melhora o isolamento de recursos, o que permite 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 Implantar uma VM 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:

  1. Crie um recurso de locatário no App Lifecycle Manager.
  2. Associe uma VM ao recurso de locatário.
  3. Configure o App Lifecycle Manager e a configuração do Terraform para implantar recursos em um projeto de locatário separado.
  4. 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 locatários ou associá-los a unidades, você deve ter algum conhecimento dos fundamentos do ecossistema do App Lifecycle Manager e criar uma oferta de SaaS.

  1. Faça login na sua Google Cloud conta do. Se você não conhece o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. Implante uma VM com o App Lifecycle Manager, incluindo a criação da 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 guia de 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.com no projeto do produtor.
  3. O projeto do 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 do produtor para representar seu cliente:

  1. No Google Cloud console, acesse App Lifecycle Manager > Locatários.

    Acessar locatários

  2. Clique em Criar.

  3. Na página Criar locatário, insira vm-quickstart-tenant na caixa Nome do locatário.

  4. Na caixa Oferta de SaaS, selecione vm-quickstart-saas-offering.

  5. No menu suspenso Região, selecione us-central1.

  6. Clique em Adicionar unidade. Uma seção Nova unidade aparece.

  7. No menu suspenso Unidade, selecione a unidade projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit.

  8. Clique em Concluído para associar o recurso vm-quickstart-unit ao recurso vm-quickstart-tenant.

  9. Clique em Criar para criar o recurso de locatário. Você criou o recurso vm-quickstart-tenant e o associou ao recurso vm-quickstart-unit. Essa associação serve principalmente como uma tag organizacional no Google Cloud console, ajudando a identificar quais unidades pertencem a qual locatário.

Criar uma versão do locatário

  1. No Google Cloud console, acesse App Lifecycle Manager > Versões.

    Acessar versões

  2. Na página Versões, clique em Criar.

  3. Na página Criar versão, insira vm-quickstart-tenant-release na caixa Nome da versão.

  4. Na caixa Tipo de unidade, selecione vm-quickstart-unit-kind. Clique em Próximo.

  5. Na etapa Selecionar blueprint, clique na opção Selecionar uma imagem atual do Artifact Registry.

  6. Na etapa Armazenar blueprint, clique em Procurar e selecione o artefato associado a vm-quickstart-tenant-blueprint. Clique em Próximo.

  7. Clique em Criar. Você criou o recurso vm-quickstart-tenant-release.

Criar um projeto de locatário e implantar uma unidade

No guia de início rápido Implantar uma VM com o App Lifecycle Manager, você provisiona recursos do App Lifecycle Manager no mesmo projeto que contém a configuração da oferta de SaaS.

Neste guia de início rápido, você direciona o provisionamento de recursos para o projeto de 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.

  1. Crie um projeto de locatário em que você vai implantar os arquivos terraform-vm.zip:

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. Ative as APIs e conceda papéis do IAM no projeto de locatário. Para implantar unidades no projeto de locatário, é necessário ativar a API Compute Engine e conceder papéis do IAM no projeto de locatário.

Ativar APIs no projeto de locatário

Ative a API Compute Engine no projeto de locatário usando o Google Cloud console:

  1. Acessar o seletor de projetos.

    Acessar o seletor de projetos

  2. Clique em Selecionar um projeto.

  3. Selecione quickstart-tenant-project.

  4. Ative a API Compute Engine.

    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ão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar a API

  5. Verifique se você tem o seguinte papel ou papéis no projeto: roles/compute.admin

    Verificar os papéis

    1. No Google Cloud console, acesse a página IAM.

      Acessar IAM
    2. Selecione o projeto.
    3. 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.

    4. Para todas as linhas que especificam ou incluem você, verifique a coluna Papel para saber se a lista de papéis inclui os papéis necessários.

    Conceder os papéis

    1. No Google Cloud console, acesse a página IAM.

      Acessar IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Clique em Selecionar um papel e pesquise o papel.
    6. Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
    7. Clique em Salvar.

Provisionar uma unidade com variáveis de projeto de locatário

No projeto do produtor, provisione uma nova unidade com as variáveis de entrada do projeto de locatário:

  1. Acessar o seletor de projetos.

    Acessar o seletor de projetos

  2. Clique em Selecionar um projeto.

  3. Selecione o projeto do produtor.

  4. Acesse App Lifecycle Manager > Unidades no Google Cloud console.

    Acessar unidades

  5. Selecione o recurso vm-quickstart-unit.

  6. Clique em Provisionar.

  7. Selecione o recurso vm-quickstart-tenant-release.

  8. Selecione a conta de serviço de acionamento a que você concedeu permissões no projeto de locatário.

  9. Na seção Variáveis de entrada:

    • A variável tenant_project_id é listada conforme definida em variables.tf.
    • Na caixa ID do projeto de locatário, insira quickstart-tenant-project.
  10. 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.

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.

  1. No Google Cloud console, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. No comando, digite o ID do projeto e clique em desligar.

A seguir