Associar unidades a locatários

Neste guia de início rápido, você vai modificar a oferta de apps 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, permitindo que você gerencie os recursos de cada locatário separadamente e ofereça melhor segurança e conformidade para sua oferta de apps.

Vamos criar o cenário do guia de início rápido 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 proprietário do projeto:

  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 apps 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 apps.

  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. Novos clientes também recebem US $300 em créditos sem custo financeiro 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 instância do MySQL com o App Lifecycle Manager, incluindo a criação da configuração do Terraform, um repositório do Artifact Registry, uma oferta de apps, um tipo de unidade, uma unidade e componentes (incluindo terraform-files.zip).

  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 apps 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 apps, 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 de 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 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 oferta de apps.

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, se ela ainda não estiver ativada.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter a permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar a API

  5. Verifique se você tem os seguintes 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 seu 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, clique em Adicionar outro papel e adicione cada papel adicional.
    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 Gerente de infraestrutura 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 prompt, digite o ID do projeto e clique em Encerrar.

A seguir