IBM Cloud Docs
管理 COS 目标

管理 COS 目标

您可以使用 IBM Cloud Activity Tracker Event Routing CLI,IBM Cloud Activity Tracker Event Routing REST API 和 Terraform 脚本来管理帐户中的 IBM Cloud Object Storage (COS) 目标。 目标是可以收集审计事件的资源。

有关 IBM Cloud Activity Tracker Event Routing 目标的更多信息,请参阅 目标

关于 COS 目标

如果您正在使用 IBM Cloud Object Storage (COS) 目标,那么可以使用同一 COS 存储区跨多个区域收集帐户中的审计事件。 在该场景中,在将事件写入 COS 存储区之前,会将这些事件转发到目标区域。 您可以考虑在每个区域中定义一个存储区,以提高性能并减少网络等待时间。

在 IBM Cloud Object Storage (COS) 中定义目标时,请考虑以下信息:

  • 您可以在任何位置创建存储区。 有关更多信息,请参阅 管理 IBM Cloud Object Storage(COS)存储区

  • 只能为目标配置 1 存储区。

  • 如果您有法规和合规性需求,请检查可以在其中创建存储区的位置。 然后,如果性能至关重要,请考虑在生成审计事件的同一区域中创建 COS 存储区。

IAM 访问权

您必须授予用户 IAM 许可权以管理目标。 有关更多信息,请参阅 分配对资源的访问权

定义策略时,可以指示许可权的作用域。 您可以选择授予特定区域或整个帐户的许可权。

如果拥有创建策略和授权的 IAM 权限,则只能授予作为目标服务用户的访问权限级别。 例如,如果您拥有目标服务的查看器访问权限,则只能为授权分配查看器角色。 如果尝试分配更高级别的权限(如管理员),可能会出现权限已授予的情况,但只会分配目标服务的最高级别权限(即查看器)。

具有区域作用域的用户将限于其授权区域中的访问目标。

IAM 操作和包含这些操作的 IAM 角色。
IAM 操作 IAM 策略作用域 IAM 角色 描述
atracker.target.read 区域 Administrator
Editor
Viewer
Operator
读取 (查看) 有关目标的信息
atracker.target.create 区域 Administrator
Editor
创建目标
atracker.target.update 区域 Administrator
Editor
更新目标
atracker.target.delete 区域 Administrator
Editor
删除目标
atracker.target.list 帐户 Administrator
Editor
Viewer
Operator
列出所有目标

验证选项

写入 COS 目标时,可以使用以下选项向 IBM Cloud Object Storage (COS) 存储区进行认证。

  • 通过配置服务到服务 (S2S) 授权 (建议)。
  • 通过在配置目标时提供 API 密钥。

您可以配置对 COS 存储区的服务到服务授权,以便在将加密数据写入 COS 存储区时无需传递 API 密钥

CLI 先决条件

在使用 CLI 管理目标之前,请完成以下步骤:

  1. 安装 IBM Cloud CLI

  2. 安装 IBM Cloud Activity Tracker Event Routing CLI

  3. 登录到 IBM Cloud。 运行以下命令: ibmcloud login

获取 COS 存储区 API 密钥

有关获取 COS 存储区 API 密钥的信息,请参阅 生成 API 密钥以访问存储区

使用同一帐户的 UI witihin 配置 S2S 授权

执行以下操作以使用 IBM Cloud UI 配置服务到服务授权。

  1. 以将配置 IBM Cloud Activity Tracker Event Routing 目标的帐户所有者身份登录到 IBM Cloud 帐户

    使用用户标识和密码登录后,IBM Cloud“仪表板”即会打开。

  2. 单击管理 > 访问权 (IAM)。 这样会显示 管理访问权和用户

  3. 点击授权

  4. 单击创建

  5. 对于 源服务,选择 Activity Tracker,对于 要如何限定访问范围?,选择 所有资源

  6. 对于 目标服务,请选择 Cloud Object Storage要如何限定访问范围? 选择 基于所选属性的资源

  7. 选择 服务实例字符串等于 COS 实例的名称。

  8. 对于 服务访问权,请选择 对象写程序

  9. 单击授权。 新的服务到服务授权将列示在“管理授权”视图中。

您将只能使用 UI 向 IBM Cloud Object Storage 实例授权。 如果要将授权限制为特定 IBM Cloud Object Storage 存储区,那么需要使用 API 配置授权。

使用 CLI 配置 S2S 授权

执行以下操作以使用 IBM Cloud CLI 配置服务到服务授权。

  1. 以将配置 IBM Cloud Activity Tracker Event Routing 授权的帐户所有者身份登录到 IBM Cloud 帐户

  2. 创建用于定义服务到服务授权的授权策略。

    ibmcloud iam authorization-policy-create atracker cloud-object-storage "Object Writer" [--target-service-instance-id <COS_SERVICE_INSTANCE>
    

    其中:

    COS_SERVICE_INSTANCE 是要授权的 COS 实例的 存储区实例 CRN

使用 API 配置 S2S 授权

执行以下操作以使用 IBM Cloud API 配置服务到服务授权。

  1. 以将配置 IBM Cloud Activity Tracker Event Routing IAM 授权的帐户所有者身份登录到 IBM Cloud 帐户

  2. 创建定义服务到服务授权的 authorization_policy_resource.json 文件。

    {
        "type": "authorization",
        "subjects": [
            {
                "attributes": [
                  {
                       "name": "accountId",
                       "value": "CUSTOMER_ACCOUNT_ID"
                   },
                   {
                        "name": "serviceName",
                        "value": "atracker"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::serviceRole:ObjectWriter"
            }
        ],
        "resources": [
            {
                "attributes": [
                  {
                       "name": "accountId",
                       "value": "CUSTOMER_ACCOUNT_ID"
                   },
                   {
                        "name": "serviceName",
                        "value": "cloud-object-storage"
                    },
                    {
                        "name": "serviceInstance",
                        "value": "COS_SERVICE_INSTANCE"
                    }
                ]
            }
        ]
    }
    

    其中:

    CUSTOMER_ACCOUNT_ID 是将配置目标的帐户的帐户 GUID。 这可以通过使用 ibmcloud account list 命令找到。

    COS_SERVICE_INSTANCE 是要授权的 COS 实例的 存储区实例 CRN

  3. 获取 IAM 访问令牌。 有关更多信息,请参阅 检索 IAM 访问令牌

  4. 运行以下命令以配置服务到服务授权:

    curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header "Authorization: $ACCESS_TOKEN" -d @authorization_policy_resource.json "https://iam.cloud.ibm.com/v1/policies"
    

使用 CLI 创建 COS 目标

使用此命令可创建用于配置活动事件目标的 IBM Cloud Object Storage 目标。

 ibmcloud atracker target create --name TARGET_NAME --type TARGET_TYPE ( [--file COS_ENDPOINT_DEFINITION_JSON_FILE] |  ( [--endpoint COS_ENDPOINT] [--bucket COS_BUCKET] [--target-crn COS_TARGET_CRN] ( [--api-key ( COS_API_KEY | @COS_API_KEY_FILE )] |  [--service-to-service-enabled ( TRUE | FALSE )] ) ) ) [--region REGION] [--output FORMAT]

命令选项

--region REGION | -r REGION

地区名称,例如 us-southeu-gb。 如果未指定,那么将使用已登录或目标区域。

--name TARGET_NAME

要对目标指定的名称。

请勿在任何资源名称中包含任何个人标识信息 (PII)。

--type TARGET_TYPE

将 COS 目标的 TARGET_TYPE 设置为 cloud_object_storage

--file @COS_ENDPOINT_DEFINITION_JSON_FILE

包含以下格式的端点定义的文件:

{
  "endpoint": "aaaaa",
  "target_crn": "yyyyy",
  "bucket": "zzzzzz",
  "api_key": "xxxxxx"
}
--endpoint COS_ENDPOINT

要与 IBM Cloud Object Storage 存储区关联的 IBM Cloud Object Storage 端点。

--bucket BUCKET

要与目标关联的 IBM Cloud Object Storage 存储区的名称。

--target-crn COS_TARGET_CRN

IBM Cloud Object Storage 实例的 CRN。

--api-key COS_API_KEY | @COS_API_KEY_FILE

API 密钥 值或对用于获取访问权的 API 密钥文件的引用。 例如, ibmcloud login --apikey $KEYFILE

--service-to-service-enabled

指示是否已对存储区启用 服务到服务授权。 如果已启用服务到服务授权,请指定 TRUE ; 如果未启用服务到服务授权,请指定 FALSE。 默认情况下,service_to_service_enabledFALSE

--output FORMAT

当前支持的格式为 JSON。 如果指定此项,那么将以 JSON 格式返回输出。 如果未指定 JSON,输出将以表格格式返回。

help | --help | -h

列出可用于该命令的选项。

示例

以下是使用 ibmcloud atracker target create --name my-target --type cloud_object_storage --endpoint s3.us-west.cloud-object-storage.appdomain.cloud --bucket cloud-object-storage-my-cos --target-crn crn:v1:staging:public:cloud-object-storage:global:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:: --api-key yyyyyyyyyyyyyyyyyyyyyyyyyyyyy 命令的示例。

此示例显示成功创建目标的示例。

Target
Name:               		my-target
ID:                 		000000000-00000000-0000-0000-00000000
CRN:                		crn:v1:staging:public:atracker:us-south:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
Type:               		cloud_object_storage
COS Endpoint:       		s3.us-west.cloud-object-storage.appdomain.cloud
COS Target CRN:     		crn:v1:staging:public:cloud-object-storage:global:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:
COS Bucket:         		cloud-object-my-target
Service to Service Enabled:	true
Write Status:   		success
Created:            		2021-07-21T16:04:15.174Z
Updated:            		2021-07-21T16:04:15.174Z

使用 CLI 更新 COS 目标

使用此命令可更新 IBM Cloud Activity Tracker Event Routing 区域的 COS 目标。 与最初创建目标时不同的任何指定值都将更新为命令中指定的值。

ibmcloud atracker target update --target TARGET [--name TARGET_NAME] [ [--file COS_ENDPOINT_DEFINITION_JSON_FILE] |  ( [--endpoint COS_ENDPOINT] [--bucket COS_BUCKET] [--target-crn COS_TARGET_CRN] ( [--api-key ( COS_API_KEY | @COS_API_KEY_FILE )] | [--service-to-service-enabled ( TRUE | FALSE )]))] [--output FORMAT]

命令选项

--target TARGET

标识或当前目标名称。

--region REGION | -r REGION

地区名称,例如 us-southeu-gb。 如果未指定,那么将使用已登录或目标区域。

--name TARGET_NAME

要对目标指定的名称。

请勿在任何资源名称中包含任何个人标识信息 (PII)。

--file @COS_ENDPOINT_DEFINITION_JSON_FILE

包含以下格式的端点定义的文件:

{
  "endpoint": "aaaaa",
  "target_crn": "yyyyy",
  "bucket": "zzzzzz",
  "api_key": "xxxxxx"
}

或者对于启用服务到服务认证的场景:

{
  "endpoint": "aaaaa",
  "target_crn": "yyyyy",
  "bucket": "zzzzzz",
  "service_to_service_enabled": true
}
--endpoint COS_ENDPOINT

要与 IBM Cloud Object Storage 存储区关联的 IBM Cloud Object Storage 端点。

--bucket COS_BUCKET

要与目标关联的 IBM Cloud Object Storage 存储区的名称。

--target-crn COS_TARGET_CRN

IBM Cloud Object Storage 实例的 CRN。

--api-key COS_API_KEY | @COS_API_KEY_FILE

API 密钥 值或对用于获取访问权的 API 密钥文件的引用。 例如, ibmcloud login --apikey $KEYFILE

--service-to-service-enabled (TRUE | FALSE)

指示是否已对存储区启用 服务到服务授权。 如果已启用服务到服务授权,请指定 TRUE ; 如果未启用服务到服务授权,请指定 FALSE。 缺省情况下,服务到服务授权为 FALSE

--output FORMAT

当前支持的格式为 JSON。 如果指定此项,那么将以 JSON 格式返回输出。 如果未指定 JSON,输出将以表格格式返回。

help | --help | -h

列出可用于该命令的选项。

示例

以下是使用 ibmcloud atracker target update --target my-target --name new-target-name 命令的示例。

Target
Name:               		new-target-name
ID:                 		xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
CRN:               		crn:v1:staging:public:atracker:us-south:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
Type:               		cloud_object_storage
COS Endpoint:       		s3.us-west.cloud-object-storage.appdomain.cloud
COS Target CRN:    		crn:v1:staging:public:cloud-object-storage:global:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:
COS Bucket:         		cloud-object-my-target
Service to Service Enabled:	true
Write Status:   		success
Created:            		2021-07-21T16:04:15.174Z
Updated:           		2021-07-21T17:49:56.452Z

使用 CLI 删除目标

使用此命令删除目标。

ibmcloud atracker target rm --target TARGET [--force]

命令选项

--target TARGET
目标的 ID 或名称。
--force | -f
将删除目标而不向用户提供任何其他提示。
help | --help | -h
列出可用于该命令的选项。

示例

以下是使用 ibmcloud atracker target rm --target xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 命令的示例。

Are you sure you want to remove the target with target ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx? [y/N]>y
OK
Target with target ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx was successfully removed.

以下是使用 ibmcloud atracker target rm --target xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -force 命令的示例。

此示例显示找不到指定目标的失败命令。

Are you sure you want to remove the Target bearing Target ID 33333333-3333-3333-3333-333333333333? [y/N]> y
FAILED
Something went wrong. Error:
 Status Code:  404
 Incident ID:  67a33257-d5a4-46ec-94d9-14eb70e94f3d
 Code:         not_found
 Message:      The target id specified in `target_id` field is not found.

使用 CLI 验证目标

使用此命令可验证是否为 IBM Cloud Activity Tracker Event Routing 区域正确配置了目标。

ibmcloud atracker target validate --target TARGET [--region REGION] [--output FORMAT]

命令选项

--target TARGET
目标的 ID 或名称。
--region REGION | -r REGION
地区名称,例如 us-southeu-gb。 如果未指定,那么将使用已登录或目标区域。
--output FORMAT
当前支持的格式为 JSON。 如果指定此项,那么将以 JSON 格式返回输出。 如果未指定 JSON,输出将以表格格式返回。
help | --help | -h
列出可用于该命令的选项。

示例

以下是使用 ibmcloud atracker target validate --target new-target-name 命令的示例。

此示例显示已成功验证的 COS 目标。

Target
Name:               		new-target-name
ID:                 		xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
CRN:               		crn:v1:staging:public:atracker:us-south:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
Type:               		cloud_object_storage
COS Endpoint:       		s3.us-west.cloud-object-storage.appdomain.cloud
COS Target CRN:     		crn:v1:staging:public:cloud-object-storage:global:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:
COS Bucket:         		cloud-object-my-target
Service to Service Enabled:	true
Write Status:   		success
Created:            		2021-07-21T16:04:15.174Z
Updated:           		2021-07-21T17:49:56.452Z

使用 CLI 获取有关目标的信息

使用此命令可获取有关 IBM Cloud Activity Tracker Event Routing 区域的目标的信息。

ibmcloud atracker target get --target TARGET [--output FORMAT]

命令选项

--target TARGET
目标的 ID 或名称。
--output FORMAT
当前支持的格式为 JSON。 如果指定此项,那么将以 JSON 格式返回输出。 如果未指定 JSON,输出将以表格格式返回。
help | --help | -h
列出可用于该命令的选项。

示例

以下是使用 ibmcloud atracker target get --target new-target-name 命令显示 COS 目标的示例。

Target
Name:               		new-target-name
ID:                 		xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
CRN:               		crn:v1:staging:public:atracker:us-south:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
Type:               		cloud_object_storage
COS Endpoint:      		s3.us-west.cloud-object-storage.appdomain.cloud
COS Target CRN:     		crn:v1:staging:public:cloud-object-storage:global:a/xxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx:
COS Bucket:         		cloud-object-my-target
Service to Service Enabled:	true
Write Status:   		success
Created:           		2021-07-21T16:04:15.174Z
Updated:            		2021-07-21T17:49:56.452Z

列出区域中的所有目标

使用此命令可列出 IBM Cloud Activity Tracker Event Routing 区域的已配置目标。

ibmcloud atracker target ls [--output FORMAT]

命令选项

--output FORMAT
当前支持的格式为 JSON。 如果指定此项,那么将以 JSON 格式返回输出。 如果未指定 JSON,输出将以表格格式返回。
help | --help | -h
列出可用于该命令的选项。

示例

以下是使用 ibmcloud atracker target ls 命令的示例。

Name                       ID                                     Region     Type                     Service to Service Enabled	Created
target-01                  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx   us-south    cloud_object_storage    true				2020-11-18T03:52:08.603Z
target-02                  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy   us-south    cloud_object_storage    true				2020-11-18T03:52:01.592Z
target-02-backup           zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz   us-east     cloud_object_storage    false				2021-02-26T06:53:13.466Z

API 目标和操作

下表列出了可以运行的管理目标的操作:

使用IBM Cloud Activity Tracker Event Routing进行目标操作REST API
操作 REST API 方法 API_URL
创建目标 POST <ENDPOINT>/api/v2/targets
更新目标 PUT <ENDPOINT>/api/v2/targets/<TARGET_ID>
删除目标 DELETE <ENDPOINT>/api/v2/targets/<TARGET_ID>
读取目标 GET <ENDPOINT>/api/v2/targets/<TARGET_ID>
列出所有目标 GET <ENDPOINT>/api/v2/targets
验证目标 POST <ENDPOINT>/api/v2/targets/{id}/validate

您可以使用专用和公共端点来管理目标。 有关可用的 ENDPOINTS 列表的更多信息,请参阅 端点

  • 您可以使用以下格式的 API 端点来管理专用网络中的目标: https://private.REGION.atracker.cloud.ibm.com

  • 您可以使用以下格式的 API 端点来管理公用网络中的目标: https://REGION.atracker.cloud.ibm.com

  • 您可以通过更新帐户设置来禁用公共端点。 有关更多信息,请参阅 配置目标和区域设置

有关 REST API 的更多信息,请参阅 目标

API 先决条件

要进行 API 调用以管理目标,请完成以下步骤:

  1. 获取 IAM 访问令牌。 有关更多信息,请参阅 检索 IAM 访问令牌
  2. 在计划配置或管理目标的区域中标识 API 端点。 有关更多信息,请参阅 端点

使用 API 创建 COS 目标

您可以使用以下 cURL 命令来创建 IBM Cloud Object Storage (COS) 目标:

curl -X POST  <ENDPOINT>/api/v2/targets   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"   -d '{
    "name": "TARGET_NAME",
    "target_type": "cloud_object_storage",
    "cos_endpoint": {
      "endpoint": "PRIVATE_COS_ENDPOINT",
      "target_crn": "COS_CRN",
      "bucket": "BUCKET_NAME",
      "api_key": "API_KEY",
      "service_to_service_enabled": SERVICE_TO_SERVICE
    }
  }'

位置

  • <ENDPOINT> 是计划在其中配置或管理目标的区域中的 API 端点。 有关更多信息,请参阅 端点

  • TARGET_NAME 是目标的名称。 名称的最大长度为 256 个字符。

    请勿在任何资源名称中包含任何个人标识信息 (PII)。

  • TARGET_TYPE 是目标的类型。 有效类型为 cloud_object_storage

  • cos_endpoint 包含有关目标的信息。 有关如何获取存储区详细信息的更多信息,请参阅 获取存储区配置详细信息

    PRIVATE_COS_ENDPOINT 指示用于查找此存储区的 IBM Cloud Activity Tracker Event Routing 端点。 使用专用端点。

    COS_CRN 指示供应存储区的 COS 实例的 CRN

    BUCKET_NAME 指示存储区的名称。

    API_KEY 包含有权将对象上载到存储区的 API 密钥。 如果 service_to_service_enabledtrue,那么将忽略此值。

    SERVICE_TO_SERVICE 指示是否已对存储区启用 服务到服务授权。 如果已启用服务到服务授权,请指定 true ; 如果未启用服务到服务授权,请指定 false。 缺省情况下,服务到服务授权为 false

例如,您可以使用以下 cURL 请求在达拉斯创建目标:

curl -X POST   https://private.us-south.atracker.cloud.ibm.com/api/v2/targets   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"   -d '{
    "name": "My COS target",
    "target_type": "cloud_object_storage",
    "cos_endpoint": {
      "endpoint": "s3.private.us-south.cloud-object-storage.appdomain.cloud",
      "target_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/<account-id>:<instance-id>::",
      "bucket": "my-activity-tracking-bucket",
      "api_key": "xxxxxxxxxxxxxxxxxx",
      "service_to_service_enabled": false
    }
  }'

在响应中,您将获取有关目标的信息,例如指示目标 GUID 的 id 和指示目标 CRN 的 crn

使用 API 更新 COS 目标

更新 IBM Cloud Object Storage (COS) 目标时,必须在请求的数据部分中包含目标信息。

  • 必须传递所有字段。
  • 更新需要更改的字段。
  • 创建后,无法更改目标的 target_type

可以使用以下 cURL 命令来更新目标:

curl -X PUT  <ENDPOINT>/api/v2/targets/TARGET_ID  -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"   -d '{
    "name": "TARGET_NAME",
    "target_type": "TARGET_TYPE",
    "cos_endpoint": {
      "endpoint": "PRIVATE_COS_ENDPOINT",
      "target_crn": "COS_CRN",
      "bucket": "BUCKET_NAME",
      "api_key": "API_KEY",
      "service_to_service_enabled": SERVICE_TO_SERVICE
    }
  }'

位置

  • <ENDPOINT> 是计划在其中配置或管理目标的区域中的 API 端点。 有关更多信息,请参阅 端点

  • TARGET_ID 是目标的标识。

  • TARGET_NAME 是目标的名称。 名称的最大长度为 256 个字符。

    请勿在任何资源名称中包含任何个人标识信息 (PII)。

  • TARGET_TYPE 是目标的类型。 将 COS 目标的值设置为 cloud_object_storage

  • cos_endpoint 包含有关目标的信息。 有关如何获取存储区详细信息的更多信息,请参阅 获取存储区配置详细信息

    PRIVATE_COS_ENDPOINT 指示用于查找此存储区的 IBM Cloud Activity Tracker Event Routing 端点。 使用专用端点。

    COS_CRN 指示供应存储区的 COS 实例的 CRN

    BUCKET_NAME 指示存储区的名称。

    API_KEY 包含有权将对象上载到存储区的 API 密钥。 如果 service_to_service_enabledtrue,那么将忽略此值。

    SERVICE_TO_SERVICE 指示是否已对存储区启用 服务到服务授权。 如果已启用服务到服务授权,请指定 true ; 如果未启用服务到服务授权,请指定 false。 缺省情况下,服务到服务授权为 false

例如,您可以使用以下 cURL 请求在达拉斯创建目标:

curl -X PUT   https://private.us-south.atracker.cloud.ibm.com/api/v2/targets   -H "Authorization:  $ACCESS_TOKEN"   -H "content-type: application/json"   -d '{
    "name": "My COS target",
    "target_type": "cloud_object_storage",
    "cos_endpoint": {
      "endpoint": "s3.private.us-south.cloud-object-storage.appdomain.cloud",
      "target_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/<account-id>:<instance-id>::",
      "bucket": "my-activity-tracking-bucket",
      "service_to_service_enabled": true
    }
  }'

使用 API 删除目标

可以使用以下 cURL 命令来删除目标:

curl -X DELETE <ENDPOINT>/api/v2/targets/<TARGET_ID> -H "Authorization:  $ACCESS_TOKEN" -H "content-type: application/json"

位置

  • <ENDPOINT> 是计划在其中配置或管理目标的区域中的 API 端点。 有关更多信息,请参阅 端点
  • <TARGET_ID> 是目标的标识。

例如,可以使用以下 cURL 请求来删除标识为 00000000-0000-0000-0000-000000000000 的美国南部目标:

curl -X DELETE https://private.us-south.atracker.cloud.ibm.com/api/v2/targets/00000000-0000-0000-0000-000000000000 -H "Authorization: $ACCESS_TOKEN" -H "content-type: application/json"

在响应中,如果删除成功,那么将获得空结果:

{}

使用 API 验证目标

您可以使用以下 cURL 命令通过检查要写入目标的凭证来验证目标。

curl -X POST <ENDPOINT>/api/v2/targets/<TARGET_ID>/validate -H "Authorization: $ACCESS_TOKEN" -H "content-type: application/json"

位置

  • <ENDPOINT> 是计划在其中配置或管理目标的区域中的 API 端点。 有关更多信息,请参阅 端点
  • <TARGET_ID> 是目标的标识。

例如,可以使用以下 cURL 请求来验证标识为 00000000-0000-0000-0000-000000000000 的美国南部目标:

curl -X POST https://private.us-south.atracker.cloud.ibm.com/api/v2/targets/<TARGETID>/validate -H "Authorization: $ACCESS_TOKEN" -H "content-type: application/json"

在响应中,您将在 cos_write_status 部分中获取信息,例如:

"write_status": {
    "status": "success"
  },

使用 API 查看目标

您可以使用以下 cURL 命令来查看 1 目标的配置详细信息:

curl -X GET <ENDPOINT>/api/v2/targets/<TARGET_ID> -H "Authorization: $ACCESS_TOKEN" -H "content-type: application/json"

位置

  • <ENDPOINT> 是计划在其中配置或管理目标的区域中的 API 端点。 有关更多信息,请参阅 端点
  • <TARGET_ID> 是目标的标识。

例如,可以运行以下 cURL 请求以获取有关标识为 00000000-0000-0000-0000-000000000000 的目标的信息:

curl -X GET https://private.us-south.atracker.cloud.ibm.com/api/v2/targets/00000000-0000-0000-0000-000000000000 -H "Authorization: $ACCESS_TOKEN" -H "content-type: application/json"

结果将显示目标是否为 COS ("target_type": "cloud_object_storage")。

使用 API 列出所有目标

可以使用以下 cURL 命令来查看所有目标:

curl -X GET <ENDPOINT>/api/v2/targets -H "Authorization: $ACCESS_TOKEN" -H "content-type: application/json"

位置

  • <ENDPOINT> 是计划在其中配置或管理目标的区域中的 API 端点。 有关更多信息,请参阅 端点

例如,您可以运行以下 cURL 请求以获取有关达拉斯中定义的目标的信息:

curl -X GET https://private.us-south.atracker.cloud.ibm.com/api/v2/targets -H "Authorization:  $ACCESS_TOKEN" -H "content-type: application/json"

结果将显示目标是否为 COS ("target_type": "cloud_object_storage") 目标。

HTTP 响应代码

在使用 IBM Cloud Activity Tracker Event Routing REST API 时,您可以获取标准的 HTTP 响应代码,以指示方法是否成功完成。

  • 200 响应始终指示成功。
  • 4xx 响应指示失败。
  • 5xx 响应通常指示内部系统错误。

有关 HTTP 的一些响应代码,请参见下表:

HTTP 响应代码列表
状态码 状态 描述
200 OK 请求已成功。
201 OK 请求已成功。 将创建资源。
400 错误请求 请求失败。 您可能缺少必需的参数。
401 未授权 API 请求中使用的 IAM 令牌无效或已到期。
403 禁止 由于许可权不足,因此禁止执行此操作。
404 找不到 请求的资源不存在或已被删除。
429 请求次数太多 过多请求过快地命中 API。
500 内部服务器错误 在 IBM Cloud Activity Tracker Event Routing 处理中发生错误。

使用 UI 创建 IBM Cloud Object Storage 目标

只有帐户中的资源才会列出并可选择。 要在其他帐户中指定资源,请在 选择目标下选择 指定 CRN

  1. 登录到 IBM Cloud 帐户
  2. 单击 菜单 图标 "菜单" 图标 > 可观察性
  3. 选择 Activity Tracker
  4. 选择 路由
  5. 选择 目标
  6. 单击 创建 以打开创建面板。
  7. 选择类型: 单击 Object Storage
  8. 需要服务授权: 需要服务授权以允许 IBM Cloud Activity Tracker Event Routing 与 IBM Cloud Object Storage进行通信。 单击 立即授权 以自动创建策略,或者单击 在 IAM 中授予访问权
  9. 选择目标: 选取 按实例搜索指定 CRN
    • 按实例搜索: 从表中选择 IBM Cloud Object Storage 实例,或者单击 创建 以创建新的 IBM Cloud Object Storage 实例。 选择实例后,选择 IBM Cloud Object Storage 存储区。
    • 指定 CRN: 输入 IBM Cloud Object Storage 存储区的云资源名称 (CRN)。 这使您能够从其他帐户输入 CRN。
  • 存储区端点: 使用缺省存储区端点或对其进行更改。
  • 目标名称: 输入有意义的目标名称。
  • 目标区域: 选择将处理事件数据的区域。
  • 切换 设置为缺省目标 以在 IBM Cloud Activity Tracker Event Routing 设置中将新目标自动设置为缺省目标。 有关更多详细信息,请参阅 缺省目标文档
  • 单击 创建目标

使用 UI 更新 IBM Cloud Object Storage 目标

只有帐户中的资源才会列出并可选择。 要在其他帐户中指定资源,请在 选择目标下选择 指定 CRN

  1. 登录到 IBM Cloud 帐户
  2. 单击 菜单 图标 "菜单" 图标 > 可观察性
  3. 选择 Activity Tracker
  4. 选择 路由
  5. 选择 目标
  6. 确定要更新的目标,然后单击 "操作" 图标
  7. 单击 取消设置为缺省值 以在 IBM Cloud Activity Tracker Event Routing 设置中除去作为缺省目标的目标。 有关更多详细信息,请参阅 缺省目标文档
  8. 单击 编辑 以打开更新面板。
  9. 详细信息: 单击 编辑 以更新目标的名称或区域。 您还可以切换 缺省目标,以在 IBM Cloud Activity Tracker Event Routing 设置中添加或除去作为缺省目标的目标。
  10. 单击 保存 以更新目标。
  11. 目标: 单击 编辑 以更改与目标关联的 IBM Cloud Object Storage 实例或存储区。
  12. 单击 保存 以更新目标。

使用 UI 删除目标

如果 IBM Cloud Activity Tracker Event Routing 目标用于路由或用作缺省目标设置,那么无法将其删除。

  1. 登录到 IBM Cloud 帐户
  2. 单击 菜单 图标 "菜单" 图标 > 可观察性
  3. 选择 Activity Tracker
  4. 选择 路由
  5. 选择 目标
  6. 确定要删除的目标,然后单击 "操作" 图标
  7. 单击 删除,然后在确认面板中单击 删除

使用用户界面列出区域内的所有目标

  1. 登录到 IBM Cloud 帐户
  2. 单击 菜单 图标 "菜单" 图标 > 可观察性
  3. 选择 Activity Tracker
  4. 选择 路由
  5. 选择 目标

表详细信息:

  • 目标类型
  • 目标名称
  • 目的地区域
  • 路由: 如果在任何路由中使用该路由
  • 目标状态
    • 活动: 目标正在按预期工作
    • 错误: 目标不正确,不会将事件路由到目标。 更新目标详细信息或目标以修订目标配置,或者删除不再需要的目标