Google Cloud IAM
集成版本:12.0
使用场景
在 Google Cloud中管理权限和服务账号。
产品权限
创建服务账号:
- 打开 Google Cloud 项目门户,在左侧窗格中依次点击 IAM 和管理 > 角色。
- 点击创建角色,以创建具有集成所需权限的自定义角色。
- 在打开的页面上,将角色“标题”“说明”“ID”“角色发布阶段”设置为“正式版”。
向创建的角色添加以下权限:
- iam.serviceAccounts.list
- iam.serviceAccounts.create
- iam.serviceAccounts.get
- iam.serviceAccounts.getIamPolicy
- iam.serviceAccounts.setIamPolicy
- iam.serviceAccounts.disable
- iam.serviceAccounts.enable
- iam.serviceAccounts.delete
- iam.roles.list
- iam.roles.get
- iam.roles.create
- iam.roles.delete
点击创建以创建新的自定义角色。
接下来,前往 Google 文档,然后按照“创建服务账号”部分中的步骤操作。创建服务账号后,系统会下载服务账号私钥文件。
向服务账号授予您之前创建的角色,以便服务账号拥有集成所需的权限。
使用您在第 1 步中下载的文件的 JSON 内容配置 Google Cloud IAM 集成。
在 Google Security Operations 中配置 Google Cloud IAM 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
账户类型 | 字符串 | service_account | 否 | Google Cloud 账号的类型。位于身份验证 JSON 文件中的“type”参数中。您需要复制该值并将其放入此集成配置参数中。 |
项目 ID | 字符串 | 不适用 | 否 | Google Cloud 账号的项目 ID。位于身份验证 JSON 文件中的“project_id”参数中。您需要复制该值并将其放入此集成配置参数中。 |
私钥 ID | 密码 | 不适用 | 否 | Google Cloud 账号的私钥 ID。位于身份验证 JSON 文件中的“private_key_id”参数中。您需要复制该值并将其放入此集成配置参数中。 |
私钥 | 密码 | 不适用 | 否 | Google Cloud 账号的私钥。位于身份验证 JSON 文件中的“private_key”参数中。您需要复制该值并将其放入此集成配置参数中。 |
客户电子邮件地址 | 字符串 | 不适用 | 否 | Google Cloud 账号的客户电子邮件地址。位于身份验证 JSON 文件中的“client_email”参数中。您需要复制该值并将其放入此集成配置参数中。 |
客户端 ID | 字符串 | 不适用 | 否 | Google Cloud 账号的客户端 ID。位于身份验证 JSON 文件中的“client_id”参数中。您需要复制该值并将其放入此集成配置参数中。 |
身份验证 URI | 字符串 | https://accounts.google.com/o/oauth2/auth | 否 | Google Cloud 账号的身份验证 URI。位于身份验证 JSON 文件中的“auth_uri”参数中。您需要复制该值并将其放入此集成配置参数中。 |
令牌 URI | 字符串 | https://oauth2.googleapis.com/token |
否 | Google Cloud 账号的令牌 URI。位于身份验证 JSON 文件中的“token_uri”参数中。您需要复制该值并将其放入此集成配置参数中。 |
身份验证提供方 X509 网址 | 字符串 | https://www.googleapis.com/oauth2/v1/certs |
否 | Google Cloud 账号的身份验证提供方 X509 网址。位于身份验证 JSON 文件中的“auth_provider_x509_cert_url”参数中。您需要复制该值并将其放入此集成配置参数中。 |
客户端 X509 网址 | 字符串 | 不适用 | 否 | Google Cloud 账号的客户端 X509 网址。位于身份验证 JSON 文件中的“client_x509_cert_url”参数中。您需要复制该值并将其放入此集成配置参数中。 |
服务账号 Json 文件内容 | 字符串 | 不适用 | 否 | 可选:您可以不指定私钥 ID、私钥和其他参数,而是在此处指定服务账号文件的完整 JSON 内容。如果提供此参数,系统会忽略其他连接参数。 |
验证 SSL | 复选框 | 勾选 | 否 | 如果启用,集成会验证与 Google Cloud 服务的连接的 SSL 证书是否有效。 |
操作
Ping
说明
使用 Google Security Operations Marketplace 标签页中的集成配置页面上提供的参数,测试与 Identity and Access Management 服务的连接。
参数
不适用
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
丰富实体
说明
使用 Identity and Access Management 中的服务账号信息丰富 Google SecOps 用户实体。操作需要将 Identity and Access Management 服务账号电子邮件作为 Google SecOps 用户实体。
运行于
此操作在 User 实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"name": "projects/silver-shift-275007/serviceAccounts/dmitrystestsa@silver-shift-275007.iam.gserviceaccount.com",
"projectId": "silver-shift-275007",
"uniqueId": "104627053409757134782",
"email": "dmitrystestsa@silver-shift-275007.iam.gserviceaccount.com",
"displayName": "dmitrys Test SA displayName",
"etag": "MDEwMjE5MjA=",
"description": "Service account description",
"oauth2ClientId": "104627053409757134782"
}
实体扩充
扩充项字段名称 | 逻辑 - 适用情形 |
---|---|
Google_IAM_name | |
Google_IAM_project_id | .. |
Google_IAM_unique_id | |
Google_IAM_email | |
Google_IAM_display_name | |
Google_IAM_description | |
Google_IAM_oauth2_client_id |
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“执行操作‘丰富实体’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
表(丰富度) | 表格名称:{实体}扩充表 列:键、值 |
实体 |
List Service Accounts
说明
根据指定的搜索条件列出 Identity and Access Management 服务账号。 请注意,此操作不适用于 Google SecOps 实体。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
服务账号显示名称 | 字符串 | 不适用 | 否 | 指定要返回的服务账号显示名称。参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 |
服务账号电子邮件地址 | 字符串 | 不适用 | 否 | 指定要返回的服务账号电子邮件地址。参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 |
要返回的行数上限 | 整数 | 50 | 否 | 指定角色操作应返回多少个角色。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"accounts": [
{
"name": "projects/silver-shift-275007/serviceAccounts/dmitrystestsa@silver-shift-275007.iam.gserviceaccount.com",
"projectId": "silver-shift-275007",
"uniqueId": "104627053409757134782",
"email": "dmitrystestsa@silver-shift-275007.iam.gserviceaccount.com",
"displayName": "dmitrys Test SA displayName",
"etag": "MDEwMjE5MjA=",
"description": "Service account description",
"oauth2ClientId": "104627053409757134782"
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、无效的地区、SDK 错误(例如凭据错误、无法连接到服务器、其他错误):“Error executing action "List Service Accounts". 原因:{0}''.format(error.Stacktrace) |
常规 |
表格 | 表格名称: Google Cloud 服务账号 表格列: 服务账号名称 服务账号唯一 ID 服务账号电子邮件地址 服务账号显示名称 服务账号说明 服务账号 OAuth2 客户端 ID |
常规 |
创建服务账号
说明
创建 Identity and Access Management 服务账号。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
服务账号 ID | 字符串 | 字符串 | 是 | 指定要创建的服务账号 ID。 |
服务账号显示名称 | 字符串 | 字符串 | 否 | 指定要创建的服务账号显示名称。 |
服务账号说明 | 字符串 | 字符串 | 否 | 指定要创建的服务账号说明。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"name": "projects/silver-shift-275007/serviceAccounts/dmitrystestsa@silver-shift-275007.iam.gserviceaccount.com",
"projectId": "silver-shift-275007",
"uniqueId": "104627053409757134782",
"email": "dmitrystestsa@silver-shift-275007.iam.gserviceaccount.com",
"displayName": "dmitrys Test SA displayName",
"etag": "MDEwMjE5MjA=",
"description": "Service account description",
"oauth2ClientId": "104627053409757134782"
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“Error executing action "Create Service Account". 原因:{0}''.format(error.Stacktrace) |
常规 |
获取服务账号 IAM 政策
说明
获取服务账号的访问权限控制政策。操作需要将 Identity and Access Management 服务账号电子邮件地址作为 Google SecOps 用户实体。请注意,如果未向服务账号分配任何政策,则政策可能为空。
运行于
此操作在 User 实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"version": 1,
"etag": "BwXBuNg8cMA=",
"bindings": [
{
"role": "roles/iam.securityReviewer",
"members": [
"user:dmitrys@siemplify.co"
]
}
]
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“执行操作‘获取服务账号 IAM 政策’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
设置服务账号 IAM 政策
说明
设置指定服务账号的访问权限控制政策。操作需要将 Identity and Access Management 服务账号电子邮件作为 Google SecOps 账号实体。请注意,操作中提供的政策会替换任何现有政策。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
政策 | 字符串 | 不适用 | 是 | 指定要为服务账号设置的 JSON 政策文档。 |
运行于
此操作在账号实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"version": 1,
"etag": "BwXBuNg8cMA=",
"bindings": [
{
"role": "roles/iam.securityReviewer",
"members": [
"user:dmitrys@siemplify.co"
]
}
]
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“执行操作‘设置服务账号 IAM 政策’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
停用服务账号
说明
停用服务账号。操作需要将 Identity and Access Management 服务账号电子邮件作为 Google SecOps 用户实体。
运行于
此操作在 User 实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“Error executing action "Disable Service Account". 原因:{0}''.format(error.Stacktrace) |
常规 |
启用服务账号
说明
启用服务账号。操作需要将 Identity and Access Management 服务账号电子邮件作为 Google SecOps 用户实体。
运行于
此操作在 User 实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器、其他错误):“执行操作‘启用服务账号’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
删除服务账号
说明
删除服务账号。操作需要将 Identity and Access Management 服务账号电子邮件作为 Google SecOps 用户实体。
运行于
此操作在 User 实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“Error executing action "Delete Service Account". 原因:{0}''.format(error.Stacktrace) |
常规 |
列出角色
说明
根据指定的搜索条件列出 Identity and Access Management 角色。请注意,此操作不适用于 Google SecOps 实体。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
查看 | DDL | 基本 | 否 | 指定应使用哪个视图来返回角色信息。 |
要返回的行数上限 | 整数 | 50 | 否 | 指定角色操作应返回多少个角色。 |
是否仅列出项目自定义角色? | 复选框 | 尚未核查 | 否 | 如果启用,操作将仅返回为当前项目 ID 定义的自定义角色。 |
显示已删除的数据库 | 复选框 | 尚未核查 | 否 | 如果已启用,操作还会返回已删除的角色。 |
运行于
该操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"roles": [
{
"name": "roles/accessapproval.approver",
"title": "Access Approval Approver",
"description": "Ability to view or act on access approval requests and view configuration",
"stage": "BETA",
"etag": "AA=="
},
{
"name": "roles/accessapproval.configEditor",
"title": "Access Approval Config Editor",
"description": "Ability update the Access Approval configuration",
"stage": "BETA",
"etag": "AA=="
}
]
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、无效的地区、SDK 错误(例如凭据错误、无法连接到服务器)、其他错误:“Error executing action "List Roles". 原因:{0}''.format(error.Stacktrace) |
常规 |
表格 | 表名称:Google Cloud IAM 角色 表格列: 角色名称 角色名称 角色说明 角色阶段 角色 ETag 角色权限 |
常规 |
创建角色
说明
创建 Identity and Access Management 角色。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
角色 ID | 字符串 | 不适用 | 是 | 为新创建的 Identity and Access Management 角色指定角色 ID。 |
角色定义 | 字符串 | 不适用 | 是 | 指定要用作角色定义的 JSON 政策文档。 |
运行于
该操作不会在实体上运行。
角色政策 JSON 示例
{
"name": "projects/silver-shift-275007/roles/iam_test_role_api",
"title": "iam_test_role_api",
"description": "test role",
"includedPermissions": [
"storagetransfer.projects.getServiceAccount"
],
"stage": "GA",
"etag": "BwXBu1RHiPw="
}
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"name": "projects/silver-shift-275007/roles/iam_test_role_api",
"title": "iam_test_role_api",
"description": "test role",
"includedPermissions": [
"storagetransfer.projects.getServiceAccount"
],
"stage": "GA",
"etag": "BwXBu1RHiPw="
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“执行操作‘创建角色’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
删除角色
说明
删除 Identity and Access Management 角色。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
角色 ID | 字符串 | 不适用 | 是 | 为新创建的 Identity and Access Management 角色指定角色 ID。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 |
---|---|
is_success | is_success=False |
is_success | is_success=True |
JSON 结果
{
"name": "projects/silver-shift-275007/roles/iam_test_role_api",
"title": "iam_test_role_api",
"description": "test role",
"includedPermissions": [
"storagetransfer.projects.getServiceAccount"
],
"stage": "GA",
"etag": "BwXDDgKFx7M=",
"deleted": true
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果出现严重错误、SDK 错误(例如凭据错误、无法连接到服务器)或其他错误:“执行操作‘删除角色’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。