本主题介绍如何为手动运行 Google Cloud Migrate for Compute Engine(原 Velostrata)迁移设置权限。此处提供的指导旨在帮助用户了解或控制为迁移过程和迁移工作负载授予的权限。
本页面介绍了迁移至以下各项时的角色创建流程:
- 单个 Google Cloud 项目
- 多个 Google Cloud 项目
前提条件
执行 Migrate for Compute Engine 迁移需要两个服务账号。如需详细了解这些服务账号及其关联角色,请参阅配置 Google Cloud。如需详细了解 gcloud
命令及其参数,请参阅 gcloud CLI 文档。
- 您必须安装 Google Cloud SDK。
- 创建 Google Cloud 项目,以在 Google Cloud 上托管 Migrate for Compute Engine 基础架构。我们将此项目称为“基础架构项目”。只要看到
project-ID
,就可以使用此项目。 - 对您的基础架构项目启用以下 API。
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
如需继续,请选择是要迁移到单个项目还是多个项目。
单个项目
本部分介绍了如何创建迁移到单个独立项目所需的服务账号,并为这些服务账号分配相应的角色。
创建角色
在项目级层创建角色:
- 打开命令提示符,并运行以下命令。将 login 参数替换为您的 Google Cloud 账号登录信息。
gcloud auth login login@google.com --no-launch-browser --brief
- 从下载页面下载 Cloud Deployment Manager 文件。
- 展开下载的文件,并将其保存到您创建角色时可以访问的目录。
- 在展开的目录中,打开
manual
目录。cd google/migrate/gce/manual
使用该目录中的 YAML 文件为角色分配权限:
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
创建服务账号
在 Google Cloud 中创建
velos-manager
服务账号。注意:project-ID
是您的基础架构项目。gcloud config set project project-ID gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"
将
velos_manager
角色分配给velos-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
为
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
在 Google Cloud 中创建
velos-cloud-extension
服务账号。在计划部署 Migrate for Compute Engine Cloud Extensions (CE) 扩展的项目中创建此账号。gcloud iam service-accounts create "velos-cloud-extension" \ --display-name "velos-cloud-extension"
将
velos_ce
角色分配给velos-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
为
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
多个项目
本部分介绍了如何创建迁移到多个项目所需的角色,并将这些角色分配给服务账号。
创建角色
执行以下步骤,即可为 Google Cloud 上的 Migrate for Compute Engine 创建角色。
- 在 Google Cloud 组织级层创建 Migrate for Compute Engine 角色:
gcloud auth login orgadmin@google.com --no-launch-browser --brief
- 从下载页面下载 Cloud Deployment Manager 文件。
- 展开下载的文件,并将其保存到您创建角色时可以访问的目录。
- 在展开的目录中,打开
manual
目录。cd google/migrate/gce/manual
使用该目录中的 YAML 文件为角色分配权限:
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
创建服务账号并为其分配角色
在 Google Cloud 中创建
velos-manager
服务账号。您可以在任何项目中创建velos-manager
服务账号,但为了简化配置,Migrate for Compute Engine 4.5 建议在宿主项目中创建此服务账号。gcloud config set project project-ID gcloud iam service-accounts create "velos-manager" \ --display-name "velos-manager"
将
velos_manager
角色分配给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
为
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
在 Google Cloud 中创建
velos-cloud-extension
服务账号。在计划部署 Migrate for Compute Engine Cloud Extensions (CE) 扩展的项目中创建此账号。gcloud iam service-accounts create "velos-cloud-extension" \ --display-name "velos-cloud-extension"
将
velos_ce
角色分配给velos-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
为
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