create-serice-account
概览
create-serice-account
是随 Apigee Hybrid 提供的命令行工具,可创建具有的角色允许各个 Apigee Hybrid 组件进行已获授权的 API 调用并下载关联服务账号密钥文件的 Google Cloud 服务账号。您可以在配置替换文件中使用此命令生成的服务账号密钥文件。
create-service-account
会在您当前的 Google Cloud 项目或您指定的项目中创建一个或多个服务账号,为服务账号分配正确的 IAM 角色,并将服务账号的证书文件下载到本地机器上的目录中。
如需详细了解服务账号并查看建议用于生产环境的服务账号的完整列表,请参阅以下内容:
您还可以在 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
工具:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/
验证 create-service-account
工具是否可执行
验证您可以执行 create-service-account
。如果您刚刚下载了 Apigee Helm 图表,则命令行工具可能尚未处于可执行模式。进入 create-service-account
的安装目录,然后使用 --help
运行该工具来验证它是否可执行:
./create-service-account --help
如果输出显示 permission denied
,则需要使该文件可执行,例如在 Linux、MacOS 或 UNIX 中或者在 Windows 资源管理器中使用 chmod
,在 Windows 中使用 icacls
命令。例如:
chmod +x ./create-service-account
使用 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 |
prod non-prod |
指定您要为生产 (prod ) 环境还是非生产 (non-prod ) 环境创建服务账号。
如果您在没有 |
--help -h |
无 | 显示帮助文本。 |
--name -n |
服务账号名称 | 指定服务账号的名称。--name 仅适用于通过 --profile 或 --env non-prod 指定的单个服务账号。
该名称也是服务账号证书名称和电子邮件地址的一部分。例如,如果您运行
如果您未指定 |
‑‑profile -p |
apigee‑cassandra apigee‑logger apigee‑mart apigee‑metrics apigee‑runtime apigee‑synchronizer apigee‑udca apigee‑watcher |
仅适用于生产环境,指定要创建的单个服务账号。
您可以使用 需要指定 |
‑‑project‑id -i |
项目 ID | 您在其中创建服务账号的 Google Cloud 项目的 ID。
如果您未指定项目 ID,则 |
如需详细了解 Apigee Hybrid 使用的服务账号,请参阅关于服务账号。
您还可以在 Google Cloud 控制台中创建服务账号。另请参阅创建和管理服务账号。