GoogleCloud(GCP) 客户端授权配置¶
脚本市场支持通过 GCP 服务账号采集云资源/云监控指标上报到观测云,用户可以通过配置 服务账号 完成授权
一、前置工作¶
确保为每个需要被监控的项目启用以下 API:¶
- Cloud Resource Manager API
- Google Cloud Billing API
- Cloud Monitoring API
- Compute Engine API
- Cloud Asset API
- IAM API
二、创建服务账号¶
通过 Dataflux Func 脚本市场采集 GCP 资源需要提前在待采集的 GCP 平台创建一个 GCP 服务账号
打开您的 Google Cloud 控制台,跳转到 IAM & Admin
/Service accounts
点击创建 Create service account
,输入 Service account name
,点击创建并继续
给服务账号授予对项目的访问权限
- Monitoring Viewer
- Compute Viewer
- Cloud Asset Viewer
- Browser
点击完成,此时你创建的服务账号就拥有采集当前项目下资源的的所有权限。
如果您想使用该服务账号采集整个组织下所有项目的资源,可以选定组织,在 IAM & Admin
/IAM
中授予该服务账号访问权限(权限同上)。
三、创建服务账号密钥(可选)¶
如果您的服务账号允许密钥创建(关闭组织政策限制:iam.disableServiceAccountKeyCreation
)
- 点击刚才创建的服务账号
- 选择选项卡
Keys
点击Add Key
-Create new key
选择键类型为JSON
,密钥导出备用
如果您的服务账号不允许创建密钥,参考下一项服务账号模拟
四、服务账号模拟(可选)¶
服务账号模拟,即可以委托外部的 GCP 服务账号模拟您 GCP 平台创建的服务账号的功能,在此我们定义两个服务账号:
- 主权服务账号:上文所创建的服务账号(该服务账号拥有实际的权限,不可创建密钥 )
- 外部服务账号:其他 GCP 组织的服务账号(可以创建密钥)
为外部服务账号授权:
- 点击上文创建的服务账号(主权服务账号)
- 选择菜单
Principals with access
点击Grant access
: Add principals
输入外部服务账号邮箱,Assign roles
选择Service Account Token Creator
至此,外部委托账号即可模拟待采集资源平台的服务账号的权限,执行采集工作
接着,创建出外部委托服务账号的密钥,备用。
五、脚本市场采集器配置¶
上文我们创建了服务账号的私钥,接着可以登录 Dataflux Func 平台完成采集器的配置
上传密钥到 Dataflux Func 文件管理¶
- 文件管理模块启动:在「管理」页面点击「实验性功能」「启动文件管理」,刷新页面,文件管理将出现在「实验性功能」下
- 点击「文件管理」上传私钥文件
将私钥文件全名复制出来(包括 .json
)。也可以放入到其他目录下,需要将路径复制出来,例:/a/b/密钥文件。json
安装/部署采集器¶
安装采集器¶
官方脚本市场搜索需要采集的 GCP 服务,点击安装
部署采集器¶
弹出配置输入框
输入框介绍:
GCP Service Account File Name
:服务账号密钥配置文件地址(文件存储中的密钥地址)GCP Service Account Email
:服务账号邮箱GCP Service Account Private Key
:服务账号私钥 keyTarget Principal
:使用服务账号模拟的时候,指定待模拟账号的邮箱Your Account Name
:给服务账号定义一个名称
请根据密钥文件保存方式选填输入框
GCP Service Account File Name
、GCP Service Account Email
、GCP Service Account Private Key
1、当使用「文件存储」存储密钥文件(建议)
GCP Service Account File Name
:输入文件管理中密钥文件地址GCP Service Account Email
:忽略GCP Service Account Private Key
:忽略
2、不使用文件存储,也可以直接从私钥文件中拷贝出 private_key
,client_email
GCP Service Account Email
:输入client_email
值GCP Service Account Private Key
: 输入private_key
值GCP Service Account File Name
:忽略
3、在 Dataflux Func 平台配置环境变量 GOOGLE_SERVICE_ACCOUNT_INFO
,将密钥文件数据拷贝进去(以 json 类型保存)
GCP Service Account File Name
:忽略GCP Service Account Email
:忽略GCP Service Account Private Key
:忽略
Tip
环境变量存储服务账号密钥只能保存一个,且全局生效
请根据服务账号是否是接受委托的服务账号填写输入框
Target Principal
:指定待模拟账号的邮箱,不需要可忽略
常见问题:¶
- 采集器报错:
name 'service_account' is not defined
,您的 Dataflux Func 没有安装google-auth==2.38.0
(Dataflux Func GSE 新版本都默认配置),可以复制到PIP 工具
手动安装,也可以升级 Dataflux Func 服务。