跳转至

修改或验证 AWS Role 云账号



POST /api/v1/cloud_account/{cloud_account_uuid}/do/modify

路由参数

参数名 类型 必选 说明
cloud_account_uuid string Y 云账号 uuid
允许为空字符串: False

Body 请求参数

参数名 类型 必选 说明
config object Y 配置
允许为空: False
config.roleName string 授权角色名或路径(assume_role 支持路径,旧 role 保持原限制)
例子: string
最大长度: 575
允许为空: False
config.accountName string 用户名
例子: string
最大长度: 256
允许为空: False
config.extraTags array 云账号标签;最多 50 项,编辑省略保留,空数组清除
最大长度: 50
允许为空: False
config.extraTags[*] object
config.extraTags[*].key string Y
允许为空: False
config.extraTags[*].value string Y
允许为空: False
dryRun boolean Y 是否仅校验账号可用性;true 不持久化,false 执行保存,调用方必须显式传值
例子: True
允许为空: False

参数补充说明

端到端步骤参见 通过 OpenAPI 接入 AWS 云账号。示例中的 Endpoint 取自 OpenAPI 站点列表。

仅支持当前工作空间已保存的 AWS assume_role 记录,需要 cloudAccount.accountManage。仅修改 accountName、roleName、extraTags;账号 ID、分区、认证类型和 External ID 不可通过本接口更改。

校验和保存

  • 客户 Role/信任策略配置完成后,传 {"config":{},"dryRun":true},返回 saved=false 和本次验证结果,不写库、不下发采集脚本、不产生修改审计。
  • 传 dryRun=false 会重新验证并按既有逻辑保存,成功返回 saved=true。验证失败仍可保存 isAvailable=false,不能只凭 HTTP 200 判断授权成功。
  • 已有采集器会按 Front 现有逻辑重同步;相同配置重试也可能再次下发。账号配置保存幂等不等于下游 exactly-once,不把 dryRun 成功当作后续保存必成功的承诺。
  • 标签省略表示保留,[] 清空。RoleName 支持路径,不接受完整 ARN;普通修改保留原 External ID。

返回和失败

返回 content.uuid、content.saved、content.operationResult 和 content.validationResult(以及公共 content.declaration),两组结果分别携带 status/code/message;操作状态为 completed/failed,验证状态为 not_run/passed/failed。saved 在未确认提交时为 null;dryRun 明确为 false,正式成功明确为 true。验证已完成后保存/锁失败仍保留本次验证结论,HTTP 保留错误状态。

非目标认证类型、跨空间或已删除 UUID 在业务修改前拒绝,不触发 STS、脚本或迁移。对 IAM 传播延迟做有上限退避,重用原 UUID/External ID;失败查询当前配置并核对 traceId,不盲目更换授权标识。

请求例子

curl -X POST '<Endpoint>/api/v1/cloud_account/<cloud_account_uuid>/do/modify' -H 'DF-API-KEY: <DF-API-KEY>' -H 'Content-Type: application/json' --data-raw '{"config": {}, "dryRun": true}'

响应

{
    "code": 200,
    "success": true,
    "errorCode": "",
    "message": "",
    "content": {
        "uuid": "clac_example",
        "saved": false,
        "operationResult": {
            "status": "completed",
            "code": "",
            "message": ""
        },
        "validationResult": {
            "status": "passed",
            "code": "",
            "message": ""
        },
        "declaration": {}
    },
    "traceId": "TRACE-example"
}

文档评价

文档内容是否对您有帮助?