使用 SDK 访问 Security Command Center

创建一个服务账号,并将其设置为与 Security Command Center 客户端库配合使用。

准备工作

如需完成本指南,您需要以下各项:

  • Service Account Admin IAM 角色。如需详细了解 Security Command Center IAM 角色,请参阅访问权限控制
  • 可以存储服务账号私钥的现有目录路径。此路径位于 Cloud Shell 环境的上下文中,例如 /home/myuser/mykeys/
  • Security Command Center 的激活级别:项目或组织级别。根据您的激活级别,用于设置 SDK 访问权限的某些命令会有所不同。如需检查激活级别,请参阅查看 Security Command Center 的激活级别

访问 Security Command Center

如需以编程方式访问 Security Command Center,请使用 Cloud Shell 获取客户端库并对服务账号进行身份验证。

设置环境变量

  1. 转到 Google Cloud Console。
    转到 Google Cloud Console
  2. 点击激活 Cloud Shell
  3. 通过运行以下命令设置环境变量:

    1. 设置您的组织名称:

      export ORG_ID=ORGANIZATION_ID
      

      ORGANIZATION_ID 替换为您的组织的 ID。

    2. 设置项目 ID

      export PROJECT_ID=CLOUD_SCC_ENABLED_PROJECT_ID
      

      CLOUD_SCC_ENABLED_PROJECT_ID 替换为 Security Command Center 在项目级别处于活跃状态或已启用扫描的项目的 ID。

    3. 设置要用于新服务账号的自定义 ID,如 scc-sa。服务账号名称的长度必须介于 6 到 30 个字符之间、必须以字母开头,且必须全部为小写字母数字字符和连字符:

      export SERVICE_ACCOUNT=CUSTOM_ID
      

      CUSTOM_ID 替换为您选择的 ID。

    4. 设置应存储服务账号密钥的路径,例如 export KEY_LOCATION=/home/$USER/mykeys/$SERVICE_ACCOUNT.json

      export KEY_LOCATION=FULL_PATH
      # This is used by client libraries to find the key
      export GOOGLE_APPLICATION_CREDENTIALS=$KEY_LOCATION
      

设置服务账号

如需以编程方式访问 Security Command Center,您需要来自服务账号的私钥,以便客户端使用。

您还需要向服务帐号授予 securitycenter.admin IAM 角色。根据服务帐号所需的访问权限级别,您可以在项目、文件夹或组织级别授予角色。

  1. 创建与您的项目 ID 关联的服务账号:

    gcloud iam service-accounts create $SERVICE_ACCOUNT  \
    --display-name "Service Account for USER"  \
    --project $PROJECT_ID
    

    USER 替换为将使用该服务帐号的个人或实体的用户名。

  2. 创建密钥以与服务账号关联。该密钥在服务帐号的生命周期内使用,并永久存储在您分配给 KEY_LOCATION 的路径中。

    gcloud iam service-accounts keys create $KEY_LOCATION  \
    --iam-account $SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
    
  3. 根据 Security Command Center 的激活级别,向服务帐号授予组织或项目的 securitycenter.admin 角色。

    • 对于组织级激活:

      gcloud organizations add-iam-policy-binding $ORG_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \
      --role='roles/securitycenter.admin'
      
    • 对于项目级激活:

      gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \
      --role='roles/securitycenter.admin'
      

为 Security Command Center 安装客户端库

Python

要将 Security Command Center Python 库作为依赖项包含在项目中,请按照以下流程操作:

  1. 可选:在安装 Python 库之前,建议您使用 Virtualenv 来创建独立的 Python 环境。

    virtualenv onboarding_example
    source onboarding_example/bin/activate
    
  2. 安装 pip 以管理 Python 库安装。

  3. 运行以下命令以安装 Python 库:

    pip install google-cloud-securitycenter
    

Java

要将 Security Command Center Java 库作为依赖项添加到项目中,请从 Maven 代码库中选择一个工件。

Go

如需下载 Go 库,请运行以下命令:

go get cloud.google.com/go/securitycenter/apiv1

Node.js

如需安装 Node.js 库,请运行以下命令:

npm install --save @google-cloud/security-center

后续步骤

使用 SDK

查看有关 Security Command Center 支持的所有功能的指南:

SDK 参考

请参阅完整的 SDK 参考文档: