Como criar manualmente contas de serviço e papéis do Google Cloud

Este tópico descreve como configurar as permissões para uma migração manual do Google Cloud Migrate for Compute Engine (antigo Velostrata). A orientação aqui tem como objetivo ajudar aqueles que querem entender ou controlar as permissões concedidas para o processo de migração e cargas de trabalho migradas.

Essa página descreve o processo de criação de papéis para migração para:

  • Um único projeto do Google Cloud
  • Vários projetos do Google Cloud

Pré-requisitos

Duas contas de serviço são necessárias para as migrações do Migrate for Compute Engine. Para mais informações sobre cada uma dessas contas de serviço e papéis associados, consulte Com configurar o Google Cloud. Para mais informações sobre os comandos gcloud e os respectivos parâmetros, consulte a documentação da gcloud CLI.

  1. Você precisa instalar o SDK do Google Cloud.
  2. Crie um projeto do Google Cloud para hospedar a infraestrutura do Migrate for Compute Engine no Google Cloud. Chamaremos esse projeto de projeto de infraestrutura. Use esse projeto sempre que ver project-ID.
  3. Ative as seguintes APIs em seu projeto de infraestrutura.
    gcloud services enable iam.googleapis.com --project project-ID
    gcloud services enable cloudresourcemanager.googleapis.com --project project-ID
    gcloud services enable compute.googleapis.com --project project-ID
    gcloud services enable storage-component.googleapis.com --project project-ID
    gcloud services enable logging.googleapis.com --project project-ID
    gcloud services enable monitoring.googleapis.com --project project-ID
    

Para continuar, selecione se você está migrando para um único projeto ou vários projetos.

Projeto único

Esta seção descreve como criar as contas de serviço necessárias para um único projeto autônomo e atribuir os papéis apropriados a essas contas de serviço.

Como criar papéis

Crie os papéis no nível do projeto:

  1. Abra um prompt de comando e execute o comando a seguir. Substitua o parâmetro de login pelas informações de login de sua conta do Google Cloud.
    gcloud auth login login@google.com --no-launch-browser --brief
    
  2. Faça o download do arquivo do Cloud Deployment Manager na página Downloads.
  3. Expanda o arquivo baixado e salve-o em um diretório que você possa acessar ao criar papéis.
  4. Nos diretórios expandidos, abra o diretório manual.
    cd google/migrate/gce/manual
    
  5. Usando arquivos YAML nesse diretório, atribua permissões aos papéis:

    gcloud iam roles create "velos_manager" --project project-ID \
    --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet
    gcloud iam roles create "velos_ce" --project project-ID \
    --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
    

Como criar contas de serviço

  1. Crie a conta de serviço velos-manager no Google Cloud. Observação: o project-ID é seu projeto de infraestrutura.

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"

  2. Atribua o papel velos_managerà conta de serviçovelos-manager.

    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "projects/project-ID/roles/velos_manager" \
     --no-user-output-enabled --quiet
    
  3. Adicione papéis obrigatórios adicionais ao papel velos_manager:

    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/iam.serviceAccountUser"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/logging.logWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.metricWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.viewer"
     --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  4. Crie a conta de serviço velos-cloud-extension no Google Cloud. Crie essa conta no projeto em que você planeja implantar a extensão do Cloud (CE) do Migrate for Compute Engine.

    gcloud iam service-accounts create "velos-cloud-extension" \
    --display-name "velos-cloud-extension"
  5. Atribua o papel velos_ceà conta de serviçovelos-cloud-extension:

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "projects/project-ID/roles/velos_ce" \
    --no-user-output-enabled --quiet
    
  6. Atribua papéis obrigatórios adicionais à conta de serviço velos-cloud-extension:

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/logging.logWriter" \
    --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/monitoring.metricWriter" \
    --no-user-output-enabled --quiet
    

Vários projetos

Esta seção descreve como criar os papéis necessários para migrações em vários projetos e atribuir esses papéis às contas de serviço.

Como criar papéis

As etapas a seguir criam papéis para a Migrate for Compute Engine no Google Cloud.

  1. Crie os papéis do Migrate for Compute Engine no Google Cloud em nível organizacional:
    gcloud auth login orgadmin@google.com --no-launch-browser --brief
  2. Faça o download do arquivo do Cloud Deployment Manager na página Downloads.
  3. Expanda o arquivo baixado e salve-o em um diretório que você possa acessar ao criar papéis.
  4. Nos diretórios expandidos, abra o diretório manual.
    cd google/migrate/gce/manual
    
  5. Usando arquivos YAML nesse diretório, atribua permissões aos papéis:

    gcloud iam roles create "velos_manager" --organization organization-ID \
    --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet
    gcloud iam roles create "velos_ce" --project project-ID \
    --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
    

Como criar contas de serviço e atribuir papéis a elas

  1. Crie a conta de serviço velos-manager no Google Cloud. Embora você possa criar a conta de serviço velos-manager em qualquer um dos seus projetos, o Migrate for Compute Engine 4.8 recomenda a criação desse serviço no projeto host para simplificar a configuração.

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" \
    --display-name "velos-manager"
  2. Atribua o papel velos_manager à conta de serviço velos-manager.

    gcloud organizations add-iam-policy-binding organization-ID \
    --member serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com"\
    --role organizations/organization-ID/roles/"velos_manager"\
    --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  3. Adicione papéis obrigatórios adicionais ao papel velos_manager:

    gcloud organizations add-iam-policy-binding organization-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/iam.serviceAccountUser"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/logging.logWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.metricWriter"
     --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.viewer"
     --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
    
  4. Crie a conta de serviço velos-cloud-extension no Google Cloud. Crie essa conta no projeto em que você planeja implantar a extensão do Cloud (CE) do Migrate for Compute Engine.

    gcloud iam service-accounts create "velos-cloud-extension" \
    --display-name "velos-cloud-extension"
  5. Atribua o papel velos_ceà conta de serviçovelos-cloud-extension:

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "projects/project-ID/roles/velos_ce" \
    --no-user-output-enabled --quiet
    
  6. Atribua papéis obrigatórios adicionais à conta de serviço velos-cloud-extension:

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/logging.logWriter" \
    --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/monitoring.metricWriter" \
    --no-user-output-enabled --quiet