Infisical项目REST API使用指南:安全获取项目密钥

Infisical项目REST API使用指南:安全获取项目密钥

infisical ♾ Infisical is the open-source secret management platform: Sync secrets across your team/infrastructure and prevent secret leaks. infisical 项目地址: https://gitcode.com/gh_mirrors/in/infisical

前言

在现代应用开发中,密钥管理是确保系统安全的重要环节。Infisical作为一个专业的密钥管理平台,提供了REST API接口,让开发者能够以编程方式安全地管理和访问项目密钥。本文将详细介绍如何通过Infisical的REST API获取项目密钥。

准备工作

1. 创建项目并添加密钥

首先需要在Infisical平台上创建一个项目并添加测试密钥:

  1. 在组织概览页面点击"添加新项目",命名为"Demo App"
  2. 进入项目的"Development"环境
  3. 添加一个测试密钥:FOO=BAR

注意:为了简化本教程的演示流程,需要在项目设置中暂时禁用端到端加密功能。

2. 创建机器身份

为了安全地访问API,我们需要创建一个代表应用程序的机器身份:

  1. 进入组织设置 > 访问控制 > 机器身份
  2. 点击"创建身份"
  3. 为身份指定组织级别的角色(角色可在组织设置中配置)
  4. 创建完成后,配置"通用认证"方法

3. 创建客户端密钥

机器身份需要以下凭证进行认证:

  • 客户端ID:非敏感的身份标识符
  • 客户端密钥:相当于密码的安全凭证

操作步骤:

  1. 在身份管理界面点击密钥图标
  2. 生成新的客户端密钥
  3. 安全保存这些凭证

4. 将身份添加到项目

为了让身份能够访问特定项目:

  1. 进入"Demo App"项目设置 > 访问控制 > 机器身份
  2. 点击"添加身份"
  3. 选择要添加的身份并分配适当的项目角色

API认证流程

获取访问令牌

使用客户端ID和密钥获取访问令牌:

curl --location --request POST 'https://app.infisical.com/api/v1/auth/universal-auth/login' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'clientSecret=<client_secret>' \
--data-urlencode 'clientId=<client_id>'

成功响应示例:

{
  "accessToken": "...",
  "expiresIn": 7200,
  "tokenType": "Bearer"
}

重要说明

  • 访问令牌有有效期(默认为7200秒)
  • 令牌过期后需要重新获取
  • 有效期可在身份设置中调整

获取密钥

获取单个密钥

使用访问令牌获取特定密钥:

curl --location --request GET 'http://localhost:8080/api/v3/secrets/raw/FOO?workspaceId=657830d579cfc8415d06ce5b&environment=dev' \
--header 'Authorization: Bearer <access_token>'

响应示例:

{
  "secret": {
    "_id": "6564234b934d634e1fcd6cdf",
    "version": 1,
    "workspace": "6564173e934d634e1fcd6950",
    "type": "shared",
    "environment": "dev",
    "secretKey": "FOO2",
    "secretValue": "BAR2",
    "secretComment": ""
  }
}

获取多个密钥

如需获取环境中的所有密钥,可以使用:

curl --location --request GET 'http://localhost:8080/api/v3/secrets/raw?workspaceId=657830d579cfc8415d06ce5b&environment=dev' \
--header 'Authorization: Bearer <access_token>'

最佳实践建议

  1. 密钥轮换:定期轮换客户端密钥以增强安全性
  2. 最小权限原则:只为身份分配必要的权限
  3. 令牌管理:妥善管理访问令牌,避免泄露
  4. 错误处理:实现适当的错误处理机制,特别是处理令牌过期情况
  5. 环境隔离:为不同环境(开发、测试、生产)使用不同的身份和权限

总结

通过Infisical的REST API,开发者可以安全、灵活地管理应用程序的密钥。本文详细介绍了从创建项目、配置身份到最终通过API获取密钥的完整流程。正确使用这些API可以显著提高应用程序的安全性,同时简化密钥管理流程。

infisical ♾ Infisical is the open-source secret management platform: Sync secrets across your team/infrastructure and prevent secret leaks. infisical 项目地址: https://gitcode.com/gh_mirrors/in/infisical

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜璟轶Freda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值