Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

Access Key


什么是 Access Keys#

Access Key 是 Blocklet 平台为用户提供的永久访问凭证,由 AccessKey IDAccessKey Secret 组成的一个密钥对。它们主要用于对您的调用行为进行鉴权和认证。您可以通过 Access Key 访问 Blocklet 数据并与其进行交互。

Access Key 的组成与作用:

  • AccessKey ID: 用于标识用户的唯一字符串。它告诉 Blocklet 平台是哪个用户发出了请求。
  • AccessKey Secret: 这是一个用于验证您拥有该 AccessKey ID 的密码。它是一个高度机密的字符串,用于在您的请求中生成加密签名,证明您是该 AccessKey ID 的合法持有者。

请注意: Access Key 不用于控制台登录。它们专为编程访问设计,例如通过开发工具(如 API、命令行界面 (CLI) 和软件开发开发包 (SDK))访问 Blocklet 数据。当您通过这些工具发起请求时,请求会携带 AccessKey ID 和 AccessKey Secret 加密请求内容生成的签名,用于身份验证及请求合法性校验。

Access Key 最佳实践#

Access Key 提供了强大的编程访问能力,但其泄露或不当使用可能会对您账号下的所有 Blocklet 资源构成严重的安全威胁。遵循以下最佳实践对于维护 Blocklet 环境的安全性至关重要:

  • 减少永久 Access Key 的创建: 尽可能避免创建永不过期的 Access Key。相反,设置 Access Key 的有效期,以降低凭证一旦泄露可能带来的风险窗口。
  • 妥善保管,切勿泄露: 将您的 AccessKey ID 和 AccessKey Secret 视为高度机密的密码切勿随意分享给他人,也不要记录在公开的文档中、未经保护的版本控制系统或任何非安全的文件中。
  • 避免硬编码: 切勿将明文的 Access Key 信息直接写入您的代码中。 这种做法极其危险,一旦代码被访问或共享,密钥就会暴露。请务必使用安全的凭证管理方法,例如环境变量、密钥管理服务或不属于公共代码库的配置文件。
  • 及时删除不再使用的 Access Key: 当 Access Key 不再被使用时,请立即将其删除。未使用的密钥会成为不必要的攻击入口。
  • 定期轮换 Access Key: 实施定期轮换 Access Key 的策略。这意味着生成新的密钥并停用旧的密钥。定期轮换可以最大程度地降低密钥泄露的影响,因为其有效期将被限制。
  • 授予最小必要权限: 始终遵循最小权限原则,仅为每个 Access Key 授予其完成任务所需的最低权限。避免授予宽泛的“管理员”或“完全访问”权限,除非绝对必要。细粒度的权限设置可以在万一某个密钥被泄露时,将潜在的损害降到最低。

创建 Access Key#

  • 进入管理后台: 首先,您需要以用户管理员身份登录到您的 Blocklet 管理后台
  • 导航到集成设置: 打开仪表盘 (dashboard),然后选择 integrations(集成),接着点击 access keys(访问密钥)。
  • 开始创建: 点击“创建 access-key”按钮。
    • Access Key 名字: 一个描述性的名称,帮助您识别此密钥的用途(例如:“CI/CD 部署密钥”、“数据分析服务密钥”)。
    • Access Key 权限: 这至关重要!请根据密钥的预期用途,授予最小的必要权限。这正是最小权限原则的体现。
    • Access Key 类型: Blocklet 提供两种安全级别的 Access Key:
      • 高安全: 采用企业级安全标准,使用加密技术。它需要与 Blocklet SDK (@abtnode/client) 进行代码集成,非常适合对安全要求高和需要传输关键数据的场景。
      • 一般安全: 这是一种轻量级的令牌机制,类似于 OpenAPI Key。它支持 RESTful API 调用和第三方服务集成。它无需编码,通过 HTTP Header 即可快速集成,非常适合快速开发和原型验证。
    • Access Key 有效期: 默认情况下,Access Key 可能被设置为“永久”。但是,我们强烈建议您设置一个明确的有效期以增强安全性。

image.png

Access Key 的使用#

Access Key 的使用方式取决于您选择的类型:

1. 高安全类型 Access Key(配合 SDK 使用)#

高安全类型 Access Key 通常需要与 Blocklet SDK 配合使用,以确保强大的加密和认证。请注意 x-access-blocklet 指定

const Client = require('@abtnode/client');

const client = new Client(fullEndpoint);
client.setAuthAccessKey({
accessKeyId: "z1nDbbdm5egHTJz3KZkaairGt6izf9eMoZV",
accessKeySecret: "z66V1N8fmn7WtvuHg1PSZWfTshi1pxexGPBfrTDTGLJZ34jkVaTM3yyMcxSAfDhoLPG62TzzBjWdPDig9kCcDm2ZD",
});

const result = await client.getBlocklet( { input: { did: rootDid, attachRuntimeInfo: false } }, { headers: { 'x-access-blocklet': rootDid } }

你也可以使用作为部署 blocklet 到指定应用

blocklet deploy --endpoint https://bbqavvuuki6llb76sxmf5ukteogoeyx42bwhzl46s7i.did.abtnet.io --access-key z1nDbbdm5egHTJz3KZkaairGt6izf9eMoZV --access-secret z66V1N8fmn7WtvuHg1PSZWfTshi1pxexGPBfrTDTGLJZ34jkVaTM3yyMcxSAfDhoLPG62TzzBjWdPDig9kCcDm2ZD {blockletPath}/.blocklet/bundle;

2.一般安全类型 Access Key(RESTful API 调用)#

一般安全类型 Access Key 功能类似于传统的 OpenAPI Key,非常适合通过 RESTful API 调用进行快速集成。

curl -H "Authorization: Bearer blocklet-z1ohw91Z6SzKcC2Hs7CwhV2ubCRMoN4zdhhM8NszuDj6" "https://bbqavvuuki6llb76sxmf5ukteogoeyx42bwhzl46s7i.did.abtnet.io/.well-known/service/api/did/session"


你获得 0 积分