Membuat peran dan akun layanan Google Cloud secara manual

Topik ini menjelaskan cara menyiapkan izin yang diperlukan secara manual untuk memigrasikan VM. Panduan di sini bertujuan untuk membantu pengguna yang ingin memahami atau mengontrol izin yang diberikan untuk proses migrasi dan workload yang dimigrasikan.

Halaman ini menjelaskan proses pembuatan peran untuk bermigrasi ke:

  • Satu project Google Cloud
  • Beberapa project Google Cloud

Sebelum memulai

Dua akun layanan diperlukan untuk migrasi Migrate for Compute Engine. Untuk mengetahui informasi selengkapnya tentang setiap akun layanan ini dan peran yang terkait, lihat Mengonfigurasi Google Cloud. Untuk mengetahui informasi lebih lanjut tentang perintah gcloud beserta parameternya, baca dokumentasi gcloud CLI.

  1. Anda harus menginstal Google Cloud SDK.
  2. Buat project Google Cloud untuk menghosting infrastruktur Migrate for Compute Engine di Google Cloud. Kami akan menyebut proyek ini sebagai proyek infrastruktur. Gunakan project ini di mana pun Anda melihat project-ID.
  3. Aktifkan API berikut di project infrastruktur Anda.
    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
    

Untuk melanjutkan, pilih apakah Anda bermigrasi ke satu atau beberapa project.

Project Tunggal

Bagian ini menjelaskan cara membuat akun layanan yang diperlukan untuk satu project mandiri, dan menetapkan peran yang sesuai ke akun layanan tersebut.

Membuat akun layanan

  1. Buat akun layanan migration-manager di Google Cloud.

    gcloud config set project project-ID
    gcloud iam service-accounts create "migration-manager" --display-name "migration-manager"
  2. Tetapkan peran ke akun layanan migration-manager.

    gcloud projects add-iam-policy-binding project-ID --member \
      serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role "roles/cloudmigration.inframanager" \
      --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
      serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role "roles/cloudmigration.storageaccess" \
      --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
      serviceAccount:"migration-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:"migration-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:"migration-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:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role "roles/monitoring.viewer" \
      --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
      "migration-manager@project-ID.iam.gserviceaccount.com" \
      --member=serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  3. Buat akun layanan migration-cloud-extension di Google Cloud. Buat akun ini di project tempat Anda berencana men-deploy Ekstensi Cloud Migrate for Compute Engine (CE).

    gcloud iam service-accounts create "migration-cloud-extension" \
    --display-name "migration-cloud-extension"
  4. Tetapkan peran ke akun layanan migration-cloud-extension.

    gcloud projects add-iam-policy-binding project-ID \
      --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \
      --role "roles/cloudmigration.storageaccess" \
      --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID \
      --member serviceAccount:"migration-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:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter" \
      --no-user-output-enabled --quiet
    

Beberapa Project

Bagian ini menjelaskan cara membuat peran yang diperlukan untuk migrasi ke beberapa project, dan menetapkan peran tersebut ke akun layanan.

Membuat akun layanan dan menetapkan peran ke akun tersebut

  1. Buat akun layanan migration-manager di Google Cloud. Meskipun Anda dapat membuat akun layanan migration-manager di salah satu project Anda, membuat layanan ini di project host akan menyederhanakan konfigurasi.

    gcloud config set project project-ID
    gcloud iam service-accounts create "migration-manager" \
    --display-name "migration-manager"
  2. Tetapkan peran ke akun layanan migration-manager.

    gcloud organizations add-iam-policy-binding organization-ID --member \
      serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role "roles/cloudmigration.inframanager" \
      --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID --member \
      serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role "roles/cloudmigration.storageaccess" \
      --no-user-output-enabled --quiet
    
    gcloud organizations add-iam-policy-binding organization-ID --member \
      serviceAccount:"migration-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:"migration-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:"migration-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:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role "roles/monitoring.viewer" \
      --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
      "migration-manager@project-ID.iam.gserviceaccount.com" \
      --member=serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \
      --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  3. Buat akun layanan migration-cloud-extension di Google Cloud. Buat akun ini di project tempat Anda berencana men-deploy Ekstensi Cloud Migrate for Compute Engine (CE).

    gcloud iam service-accounts create "migration-cloud-extension" \
      --display-name "migration-cloud-extension"
  4. Tetapkan peran ke akun layanan migration-cloud-extension.

    gcloud projects add-iam-policy-binding project-ID \
      --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \
      --role "roles/cloudmigration.storageaccess" \
      --no-user-output-enabled --quiet
    
    gcloud projects add-iam-policy-binding project-ID \
      --member serviceAccount:"migration-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:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \
      --role "roles/monitoring.metricWriter" \
      --no-user-output-enabled --quiet