使用可让各个 Apigee Hybrid 组件进行已获授权的 API 调用的角色来创建 Google Cloud 服务账号并下载关联的服务账号密钥文件。您可以在配置替换文件中使用此命令生成的服务账号密钥文件。
  create-service-account 会在您当前的 Google Cloud 项目或您指定的项目中创建一个或多个服务账号,为服务账号分配正确的 IAM 角色并下载证书文件导入本地机器上的目录中。
create-service-account 工具位于 HYBRID_ROOT_DIR/tools 目录中。
如需详细了解服务账号并查看建议用于生产环境的服务账号的完整列表,请参阅以下内容:
您还可以在 Google Cloud 控制台中创建服务账号。另请参阅创建和管理服务账号。
前提条件
角色
create-service-account 工具要求安装 gcloud CLI。调用该实用程序的用户应具有 Service Account Admin 角色。
项目
  服务账号会绑定到特定的 Google Cloud 项目。create-service-account 会在当前项目或您指定的项目中创建服务账号,并将 IAM 角色绑定到该项目中的服务账号。create-service-account 还会将项目 ID 用作服务账号密钥文件名和电子邮件的一部分。例如,如果您的项目名为 my-hybrid-project,则 apigee-logger 服务账号密钥文件将命名为 my-hybrid-project-apigee-logger.json,服务账号的电子邮件地址地址将为 apigee-logger@my-hybrid-project.iam.gserviceaccount.com。
  您可以通过定义 PROJECT_ID 环境变量或使用 --project-id 标志来指定项目。create-service-account 会读取 PROJECT_ID 环境变量的值。如果不存在,您可以使用 --project-id 标志。
如果您未指定 Cloud 项目 ID,则 create-service-account 会使用当前 gcloud 项目配置中的项目。
您可以使用以下命令检查当前设置的 gcloud 项目配置:
gcloud config list project
如果需要更改当前项目 ID,请使用以下命令:
gcloud config set project PROJECT_ID
其中 PROJECT_ID 是当前 Cloud 项目的 ID。第 2 步:创建 Google Cloud 项目中介绍了创建 Cloud 项目的说明。
使用 create-service-account
  以下示例展示了如何使用 create-service-account 执行常见的 Apigee Hybrid 设置任务。
创建适用于生产环境的服务账号
在生产混合环境中,Apigee 建议您对每个组件使用单独的服务账号。使用以下命令在默认目录中采用默认名称为混合组件创建所有服务账号。
./tools/create-service-account --env prod
  这将使用在 ./tools/service-accounts 目录中下载的证书文件创建以下服务账号:
| 服务账号 | IAM 角色 | 邮箱 | 证书文件 | 
|---|---|---|---|
apigee-cassandra | 
    roles/storage.objectAdmin | 
    apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-cassandra.json | 
  
apigee-logger | 
    roles/logging.logWriter | 
    apigee-logger@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-logger.json | 
  
apigee-mart | 
    roles/apigeeconnect.Agent | 
    apigee-mart@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-mart.json | 
  
apigee-metrics | 
    roles/monitoring.metricWriter | 
    apigee-metrics@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-metrics.json | 
  
apigee-runtime | 
    未分配任何角色 | apigee-runtime@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-runtime.json | 
  
apigee-synchronizer | 
    roles/apigee.synchronizerManager | 
    apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-synchronizer.json | 
  
apigee-udca | 
    roles/apigee.analyticsAgent | 
    apigee-udca@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-udca.json | 
  
apigee-watcher | 
    roles/apigee.runtimeAgent | 
    apigee-watcher@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-watcher.json | 
  
创建适用于非生产环境的单个服务账号
对于非生产环境(例如实验环境或演示环境),您可以创建一个名为“apigee-non-prod”的服务账号,将其用于所有组件。此服务账号将获得上一示例中的所有 IAM 角色。
./tools/create-service-account --env non-prod
  此命令将创建一个名为 apigee-non-prod 的服务账号,并下载 ./tools/service-accounts 目录中的证书文件:
| 服务账号 | IAM 角色 | 邮箱 | 证书文件 | 
|---|---|---|---|
apigee-non-prod | 
    roles/apigee.analyticsAgent | 
    apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com | 
    PROJECT_ID-apigee-non-prod.json | 
  
create-service-account syntax
create-service-account 工具使用以下语法:
create-service-account [flags]
下表列出了 create-service-account 标志:
| 标志 | 值 | 说明 | 
|---|---|---|
--dir-d | 
    目录名称 | 指定服务账号密钥文件的输出目录。如果目录不存在,create-service-account 将创建目录。如果目录已存在,则 create-service-account 将覆盖目录中与其创建的密钥文件同名的任何文件。
      如果您未指定输出目录,  | 
  
--env-e | 
    prodnon-prod | 
    指定您要为生产 (prod) 环境还是非生产 (non-prod) 环境创建服务账号。
 
        如果您在没有   | 
  
--help-h | 
    无 | 显示帮助文本。 | 
--name-n | 
    服务账号名称 | 指定服务账号的名称。--name 仅适用于通过 --profile 或 --env non-prod 指定的单个服务账号。
      该名称也是服务账号证书名称和电子邮件地址的一部分。例如,如果您运行  
 
        如果您未指定   | 
  
‑‑profile-p | 
    apigee‑cassandraapigee‑loggerapigee‑martapigee‑metricsapigee‑runtimeapigee‑synchronizerapigee‑udcaapigee‑watcher | 
    仅适用于生产环境,指定要创建的单个服务账号。 
      您可以使用  需要指定   | 
  
‑‑project‑id-i | 
    项目 ID | 您在其中创建服务账号的 Google Cloud 项目的 ID。
       
         
      如果您未指定项目 ID,则   | 
  
如需详细了解 Apigee Hybrid 使用的服务账号,请参阅关于服务账号。
您还可以在 Google Cloud 控制台中创建服务账号。另请参阅创建和管理服务账号。