Configurar projetos e recursos de locatário

Este guia explica como usar locatários do App Lifecycle Manager para organizar as 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:

  1. 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 app.
  2. Ative as APIs exigidas pelo App Lifecycle Manager.

    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 pela função Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pela função Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder funções.

    Ativar as APIs

  3. Verifique se você tem as contas de serviço e as funções do Identity and Access Management necessárias concedidas 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. no 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 e
  • um projeto de locatário para cada um dos locatários.

Console

Para configurar projetos de locatário e produtor usando o Google Cloud console:

  1. Crie um projeto do produtor e um projeto de locatário para cada um dos locatários.
  2. Ative o faturamento nos projetos de locatário e produtor.
  3. Ative as APIs exigidas pelo App Lifecycle Manager nos projetos de locatário.

    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 pela função Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pela função Administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder funções.

    Ativar as APIs

  4. Verifique se os projetos de locatário 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ário e produtor. Depois de criar e ativar o faturamento para os projetos de produtor e locatário, você pode criar recursos de locatário e associar unidades a locatários.

gcloud

Para configurar um produtor e projetos de locatário usando a Google Cloud CLI:

  1. 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 de locatário.
  2. Ative o faturamento para os 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_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 de locatário.
    • BILLING_ACCOUNT_ID: o ID da conta de faturamento que você quer associar ao projeto especificado.
  3. Conceda à conta de serviço de acionamento as funções necessárias 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.' \
     --role=ROLE
    

    Substitua:

    • TENANT_PROJECT_ID: um identificador de string que representa o ID do projeto de 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 funções no projeto especificado.
    • ROLE: a função do Identity and Access Management a ser concedida.

      É necessário executar gcloud projects add-iam-policy-binding para cada função 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 os 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 de locatário na sua oferta de app para representar o cliente:

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

    Acessar locatários

  2. Clique em Criar.

  3. Na caixa Nome do locatário, insira um nome para o recurso de locatário.

  4. Opcional: na caixa Recurso do cliente, forneça um recurso do consumidor com configurações definidas pelo consumidor para integração.

  5. Na caixa Oferta de app, selecione a oferta de app que você quer associar ao locatário.

  6. Na lista suspensa Região, selecione uma região em que os metadados do locatário serão armazenados.

  7. Opcional: clique em Adicionar rótulo para adicionar um rótulo de par de chave-valor ao locatário.

  8. 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, 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 a implantação de unidades, consulte Implantar uma instância do MySQL com o App Lifecycle Manager.

Para associar uma unidade a um locatário:

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

    Acessar locatários

  2. Clique no nome do locatário que você quer associar a uma unidade.

  3. Clique em Editar.

  4. Na seção Unidades associadas, clique em Adicionar unidade.

  5. Selecione as unidades que você quer associar a esse locatário.

  6. Clique em Concluído.

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

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

    Acessar unidades

  2. Crie uma nova unidade associada ao tipo de unidade.

  3. Clique em Provisionar.

  4. Selecione a versão a ser provisionada para a unidade de locatário.

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

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

    1. Verifique se a variável tenant_project_id está listada conforme definida no arquivo variables.tf de configuração do Terraform.
    2. Na caixa ID do projeto de locatário, forneça o nome do projeto de locatário.
    3. 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.
  7. 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.

Reprovisionar uma unidade com uma nova versão

Ao reprovisionar uma unidade atual com uma nova versão, você precisa fornecer a variável tenant_project_id.

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

    Acessar unidades

  2. Selecione a unidade associada ao tipo de unidade.

  3. Clique em Editar provisionamento.

  4. Selecione a versão criada com a configuração atualizada do Terraform.

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

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

    1. Verifique se a variável tenant_project_id está listada conforme definida no arquivo variables.tf de configuração do Terraform.
    2. Na caixa ID do projeto de locatário, forneça o nome do projeto de locatário.
    3. 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.
  7. Clique em Atualizar.

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.

A seguir