服务账号是 Google Cloud 中的一种特殊账号,使系统的组件和应用可以彼此互动和与其他 API 互动。如需详细了解 Google Cloud,请参阅 Google Cloud 服务简介。
Hybrid 使用 Google Cloud 服务账号执行各种任务,包括:
- 发送日志和指标数据
- 拉取跟踪记录请求
- 连接到 API 网关以发出管理 API 请求
- 执行备份
- 下载代理软件包
尽管一个服务账号可以执行所有这些操作,但 Apigee 建议您创建多个服务账号,将每个服务账号分配给特定任务,并且每个服务账号都有各自的权限集。这可以通过划分访问权限和限制每个服务账号的范围和访问权限来增强安全性。与用户账号一样,通过为服务账号分配一个或多个角色,即可应用这些权限。
Hybrid 组件使用的服务账号和角色
为了正常运行,Apigee Hybrid 要求您创建多个服务账号。每个服务账号都需要一个或多个特定角色,才能执行其功能。
下表介绍了 Hybrid 组件的服务账号:
组件* | 角色 | 基本安装的必须组件? | 说明 |
---|---|---|---|
apigee-cassandra |
Storage Object Admin | 允许将 Cassandra 备份到 Google Cloud Storage,如备份和恢复中所述。 | |
apigee-logger |
日志写入者 | 允许收集日志记录数据,如 Logging 中所述。只有在安装非 GKE 集群时才需要。 | |
apigee-mart |
无角色 | 允许 MART 服务身份验证。此服务账号不应具有与其关联的角色;因此,在创建此服务账号时,请勿为其分配角色。 | |
apigee-metrics |
Monitoring Metric Writer | 允许收集指标数据,如指标收集中所述 | |
apigee-org-admin |
Apigee Organization Admin | 允许您调用 getSyncAuthorization API 和 setSyncAuthorization API。您无法使用 create-service-account 工具创建此服务账号。 |
|
apigee-synchronizer |
Apigee Synchronizer Manager | 允许同步器下载代理软件包和环境配置数据。同时启用跟踪记录功能。 | |
apigee-udca |
Apigee Analytics Agent | 允许将跟踪记录、分析和部署状态数据转移到管理平面。 | |
* 此名称在下载的服务账号密钥的文件名中使用。 |
除了创建此表所列的服务账号之外,您还需要下载其私钥。您稍后可使用这些密钥生成访问令牌,以便访问 Apigee API。
创建服务账号
创建服务账号的方法有多种,包括:
下面各个部分介绍了其中每种方法。
使用服务账号创建工具
create-service-account
工具(在下载并展开 apigeectl
后可用)会创建 Hybrid 组件服务账号,并为您分配所需的角色。该工具还会自动下载服务账号密钥并将其存储在本地机器的指定目录上。
如需使用 create-service-account
工具创建服务账号,请执行以下操作:
- 下载并展开
apigeectl
(如果您尚未执行此操作,如下载并安装 apigeectl 中所述。 - 创建一个用于存储您的服务账号密钥的目录。例如:
mkdir ./service-accounts
- 执行以下命令:
./tools/create-service-account apigee-metrics ./service-accounts
./tools/create-service-account apigee-synchronizer ./service-accounts
./tools/create-service-account apigee-udca ./service-accounts
./tools/create-service-account apigee-mart ./service-accounts
./tools/create-service-account apigee-cassandra ./service-accounts
./tools/create-service-account apigee-logger ./service-accounts
这些命令会创建大多数必需的账号并将其密钥存储在
./service-accounts
目录中。这些命令不会创建apigee-org-admin
服务账号。如果这些命令失败,请确保您引用了用于存储密钥文件的现有目录。
如需详细了解如何使用
create-service-account
,请参阅 create-service-account 参考文档。 - 创建
apigee-org-admin
服务账号。为此,请使用 Google Cloud 控制台。
使用 Google Cloud 控制台
您可以使用 Google Cloud 控制台创建服务账号。
如需使用 Google Cloud 控制台创建服务账号,请执行以下操作:
- 打开 Google Cloud 控制台,然后使用您在第 1 步:创建 Google Cloud 账号中创建的用户账号进行登录。
- 选择您在第 2 步:创建 Google Cloud 项目中创建的项目。
- 选择 IAM 和管理 > 服务账号。
控制台会显示服务账号视图。此视图会显示项目的服务账号的列表。(在大多数情况下,尚未列出任何账号,但列表中可能会有默认服务账号,具体取决于您创建项目的方式。)
- 如需创建新的服务账号,请点击视图顶部的 +创建服务账号。
此时会显示服务账号详细信息视图。
- 在服务账号名称字段中,输入服务账号的名称。
Apigee 建议您使用反映服务账号角色的名称;您可以将服务账号的名称设置为与使用该服务的组件的名称相同。例如,设置 Logs Writer 服务账号
apigee-logger
的名称。如需详细了解服务账号名称和角色,请参阅 Hybrid 组件使用的服务账号和角色。
在您输入名称时,Google Cloud 会为您生成一个唯一的服务账号 ID,其结构类似于电子邮件地址,如以下示例所示:
您可以选择在服务账号说明字段中添加说明。说明可提醒您特定服务账号的用途。
- 点击创建。
Google Cloud 会创建一个新的服务账号,并显示服务账号权限视图,如以下示例所示:
使用此视图为新服务账号分配角色。
- 点击选择角色下拉列表。
- 按照 Hybrid 组件使用的服务账号和角色中所述,为服务账号选择角色。如果 Apigee 角色未显示在下拉列表中,请刷新页面。
例如,对于日志记录组件,请选择 Logs Writer 角色。
如有必要,请输入文本,按名称过滤角色列表。例如,如需仅列出 Apigee 角色,请在过滤条件字段中输入“Apigee”,如以下示例所示:
您可以向服务账号添加多个角色,但 Apigee 建议您只为每个建议的服务账号使用一个角色。如需在创建服务账号后更改其角色,请使用 Google Cloud 中的 IAM 和管理面板。
- 点击继续。
Google Cloud 会显示向用户授予访问此服务账号的权限视图:
- 在创建密钥(可选)下,点击创建密钥。
Google Cloud 为您提供了下载 JSON 或 P12 密钥的选项:
- 选择 JSON(默认值),然后点击创建。
Google Cloud 会将 JSON 格式的密钥文件保存到您的本地机器上,并在成功后显示确认信息,如以下示例所示:
稍后您将使用某些服务账号密钥来配置 Hybrid 运行时服务。例如,在配置 Hybrid 运行时时,您将使用 service_name
.serviceAccountPath
属性指定服务账号密钥的位置。这些密钥由服务账号使用,以获取访问令牌,然后服务账号使用这些访问令牌代表您针对 Apigee API 发出请求。(但目前还不能;现在只需记住其保存位置。)
- 针对Hybrid 组件使用的服务账号和角色中列出的每个服务账号重复第 4 步到第 11 步(
apigee-mart
账号除外,因为没有关联任何角色,所以不为其分配角色)。完成上述操作后,您除了使用默认账号(如有)外,还应获得以下服务账号:
在 Google Cloud 控制台中,服务账号标有 图标。
创建服务账号后,如果您要添加或移除其角色,则必须使用 IAM 和管理视图。您无法在服务账号视图中管理服务账号的角色。
使用 gcloud 服务账号创建 API
您可以使用 Cloud Identity and Access Management API 创建和管理服务账号。
如需了解详情,请参阅创建和管理服务账号。