本页面介绍了使用虚拟机管理器中的政策编排程序功能所需的前提条件。
用于政策编排器前提条件的 gcloud CLI 命令
本部分列出了在使用政策编排程序功能之前需要运行的所有 gcloud
命令。
项目
以下命令用于执行创建项目级编排所需的任务:
- 为创建操作系统政策编排器的项目启用 OS Config API。
- 为创建操作系统政策编排器的项目启用 Progressive Rollout API。
- 创建所需的服务代理(如果尚未创建)。
- 向服务代理授予 IAM 角色。
# Enable OS Config API gcloud services enable osconfig.googleapis.com # Enable Progressive Rollout API gcloud services enable progressiverollout.googleapis.com # Create an OS config service agent gcloud beta services identity create --service=osconfig.googleapis.com --project=PROJECT_NUMBER # Create a Progressive Rollout service agent gcloud beta services identity create --service=progressiverollout.googleapis.com --project=PROJECT_NUMBER # Grant the required role to the OS config rollout service agent gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \ --role="roles/osconfig.rolloutServiceAgent" # Grant the required role to the OS config service agent gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \ --role="roles/osconfig.serviceAgent" # Grant the required role to the Progressive Rollout service agent gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
替换以下内容:
PROJECT_ID
:您要在其中创建服务代理的项目的数字 ID。PROJECT_NUMBER
:您创建项目时 Google 分配的项目资源编号。
如需了解详情,请参阅项目资源。
文件夹
以下命令用于执行创建文件夹级编排所需的任务:
# Set up the quota project gcloud config set billing/quota_project QUOTA_PROJECT_ID # Enable OS Config API gcloud services enable osconfig.googleapis.com # Create an OS config service agent gcloud beta services identity create --service=osconfig.googleapis.com --folder=FOLDER_NUMBER # Create a Progressive Rollout service agent gcloud beta services identity create --service=progressiverollout.googleapis.com --folder=FOLDER_NUMBER # Grant the required role to the OS config rollout service agent gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \ --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \ --role="roles/osconfig.rolloutServiceAgent" # Grant the required role to the OS config service agent gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \ --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \ --role="roles/osconfig.serviceAgent" # Grant the required role to the Progressive Rollout service agent gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \ --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
替换以下内容:
QUOTA_PROJECT_ID
:配额项目的 ID。您可以选择任何已启用结算功能的项目。FOLDER_NUMBER
:您要在其中创建服务代理的文件夹的数字 ID。
组织
以下命令可执行创建组织级编排所需的任务:
# Set up the quota project gcloud config set billing/quota_project QUOTA_PROJECT_ID # Enable OS Config API gcloud services enable osconfig.googleapis.com # Create an OS config service agent gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER # Create a Progressive Rollout service agent gcloud beta services identity create --service=progressiverollout.googleapis.com --organization=ORGANIZATION_NUMBER # Grant the required role to the OS config rollout service agent gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \ --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \ --role="roles/osconfig.rolloutServiceAgent" # Grant the required role to the OS config service agent gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \ --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \ --role="roles/osconfig.serviceAgent" # Grant the required role to the Progressive Rollout service agent gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \ --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
替换以下内容:
QUOTA_PROJECT_ID
:配额项目的 ID。您可以选择任何已启用结算功能的项目。- 将
ORGANIZATION_NUMBER
替换为要在其中创建服务代理的组织的数字 ID。
为组织和文件夹编排设置配额或结算项目
使用政策编排程序管理组织或文件夹中的操作系统政策资源时,您需要向基于客户端的 API 发出请求。基于客户端的 API 需要配额项目。如需详细了解基于客户端的 API 和设置配额项目,请参阅配额项目概览。
当您使用 gcloud CLI 或 REST API 调用政策编排程序方法时,请按以下方式指定配额项目:
gcloud
在 gcloud CLI 配置属性中设置配额项目:
gcloud config set billing/quota_project QUOTA_PROJECT_ID
将 QUOTA_PROJECT_ID
替换为配额项目的 ID。
或者,您还可以使用 --billing-project
标志(该配置优先于配置属性)为特定命令设置配额项目。
REST
添加 x-goog-user-project
HTTP 标头,以在每个请求中指定配额项目。如需了解详情,请参阅通过 REST 请求设置配额项目。
启用 OS Config API
如需在虚拟机管理器中使用政策编排程序功能,请在以下项目中启用 OS Config API:
- 对于组织级和文件夹级编排,请为配额项目启用 OS Config API。
- 对于项目级编排,请在您创建政策编排程序的项目中启用 OS Config API。
如需了解详情,请参阅启用 OS Config API。
为项目启用 Progressive Rollout API
控制台
在 Google Cloud 控制台中,选择要为其启用该 API 的 Google Cloud 项目,然后前往 API 和服务页面:
点击启用 API 和服务。
搜索“Progressive Rollout”。
在搜索结果中,点击 Progressive Rollout API。
如果该 API 尚未启用,请点击启用。
gcloud
如需查看是否已启用 Progressive Rollout API,请在将
PROJECT_ID
替换为要为其启用该 API 的项目的 ID 后运行以下命令:gcloud services list --project=PROJECT_ID
如果输出中显示
progressiverollout.googleapis.com
,则表示已启用 API。如果未启用该 API,请运行以下命令启用它。
gcloud services enable progressiverollout.googleapis.com
如需了解详情,请参阅
gcloud services
。
设置 OS Config 服务代理
政策编排程序使用 OS Config 服务代理在您的项目中执行操作。它还依赖于 Progressive Rollout API,该 API 有自己的服务代理。如需了解详情,请参阅服务代理。
您必须为创建政策编排程序的每个项目、文件夹或组织创建服务代理。为了让政策编排程序正常运行,请在编排程序的父资源中向这些服务代理授予以下必需的 IAM 角色:
- 适用于 @gcp-sa-osconfig.iam.gserviceaccount.com 账号的 OSConfig Service Agent (
roles/osconfig.serviceAgent
) - 适用于 @gcp-sa-osconfig-rollout.iam.gserviceaccount.com 账号的 OSConfig Rollout Service Agent (
roles/osconfig.rolloutServiceAgent
) - 适用于 @gcp-sa-progrollout.iam.gserviceaccount.com 账号的 Progressiverollout Service Agent (
roles/progressiverollout.serviceAgent
)
如需向服务代理授予 IAM 角色,请使用 Google Cloud 控制台或 add-iam-policy-binding
命令。如需了解详情,请参阅向服务代理授予角色。
所需的角色
-
如需获得授予服务代理访问权限所需的权限,请让管理员向您授予要针对其授予访问权限的项目、文件夹或组织的以下 IAM 角色:
- 授予服务代理对项目的访问权限:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) - 向服务代理授予对文件夹的访问权限:
Folder Admin (
roles/resourcemanager.folderAdmin
) - 向服务代理授予对项目、文件夹和组织的访问权限:Organization Admin (
roles/resourcemanager.organizationAdmin
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含授予服务代理访问权限所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需向服务代理授予访问权限,您需要具有以下权限:
-
向服务代理授予对项目的访问权限:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
向服务代理授予对文件夹的访问权限:
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
向服务代理授予对组织的访问权限:
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
- 授予服务代理对项目的访问权限:
Project IAM Admin (
要创建服务代理,请执行以下操作。
查看每项资源的服务代理邮箱的格式:
项目
service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com
将
PROJECT_NUMBER
替换为您创建政策编排程序的项目的数字 ID。文件夹
service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com
将
FOLDER_NUMBER
替换为您创建政策编排程序的文件夹的数字 ID。组织
service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com
将
ORGANIZATION_NUMBER
替换为您创建政策编排程序的组织的数字 ID。如需为指定的 API 和资源创建服务代理,请使用
gcloud beta services identity create
命令:项目
# Create an OS config service agent gcloud beta services identity create --service=osconfig.googleapis.com --project=PROJECT_NUMBER # Create a Progressive Rollout service agent gcloud beta services identity create --service=progressiverollout.googleapis.com --project=PROJECT_NUMBER
将
PROJECT_NUMBER
替换为要在其中创建服务代理的项目所对应的数字 ID。文件夹
# Create an OS config service agent gcloud beta services identity create --service=osconfig.googleapis.com --folder=FOLDER_NUMBER # Create a Progressive Rollout service agent gcloud beta services identity create --service=progressiverollout.googleapis.com --folder=FOLDER_NUMBER
将
FOLDER_NUMBER
替换为您要在其中创建服务代理的文件夹的数字 ID。组织
# Create an OS config service agent gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER # Create a Progressive Rollout service agent gcloud beta services identity create --service=progressiverollout.googleapis.com --organization=ORGANIZATION_NUMBER
将
ORGANIZATION_NUMBER
替换为您要创建服务代理的组织的数字 ID。
向服务代理授予 IAM 角色
如需授予服务代理角色,请按如下方式运行 gcloud add-iam-policy-binding
:
项目
# Grant the required role to the OS config rollout service agent gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \ --role="roles/osconfig.rolloutServiceAgent" # Grant the required role to the OS config service agent gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \ --role="roles/osconfig.serviceAgent" # Grant the required role to the Progressive Rollout service agent gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
将 PROJECT_NUMBER
替换为要添加 IAM 政策绑定的项目的数字 ID。
文件夹
# Grant the required role to the OS config rollout service agent gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \ --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \ --role="roles/osconfig.rolloutServiceAgent" # Grant the required role to the OS config service agent gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \ --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \ --role="roles/osconfig.serviceAgent" # Grant the required role to the Progressive Rollout service agent gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \ --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
将 FOLDER_NUMBER
替换为要向其添加 IAM 政策绑定的文件夹的数字 ID。
组织
# Grant the required role to the OS config rollout service agent gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \ --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \ --role="roles/osconfig.rolloutServiceAgent" # Grant the required role to the OS config service agent gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \ --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \ --role="roles/osconfig.serviceAgent" # Grant the required role to the Progressive Rollout service agent gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \ --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
将 ORGANIZATION_NUMBER
替换为要添加 IAM 政策绑定的组织的数字 ID。
后续步骤
- 了解如何使用政策编排程序管理操作系统政策分配。
- 了解如何查看和修改政策编排程序。