前言
AWS Cloud Development Kit (AWS CDK) 是一项用于定义基础架构的软件工具套件,该工具套件使用 familiar programming languages 来进行定义。本文将介绍使用 AWS CDK 中的 npm package @aws-cdk/aws-secretsmanager 来管理 AWS Secrets Manager。
AWS Secrets Manager 简介
AWS Secrets Manager 是一个用于安全地存储和检索 secrets(例如 API key,password)的服务。它可以帮助在不同服务之间共享 secrets,并提供一种用于访问和管理 secrets 的统一方式。在使用 AWS Secrets Manager 时,可以配置 secrets 的自动轮换,以更大程度地确保 secrets 的安全性。
使用 @aws-cdk/aws-secretsmanager
步骤 1:安装依赖
首先需要安装 @aws-cdk/aws-secretsmanager,可以通过 npm 进行安装:
npm install @aws-cdk/aws-secretsmanager
步骤 2:创建 Secrets Manager
在 CDK 中,可以使用 secretsmanager.Secret
类来创建 Secrets Manager。
-- -------------------- ---- ------- ------ - -- --- ---- ---------------- ------ - -- -- ---- ------------------------------ ------ ----- ------- ------- --------- - ------------------ -------------- --- ------- ------- --------------- - ------------ --- ------- ----- ------ - --- --------------- ------------ - ----------- ----------------- --------------------- - --------------------- ---------------- --------- ---------- --- ------------------ ----------- -- --- - -
在上面的代码中,我们创建了一个名为 ‘my-secret-name’ 的 secret,并指定了生成 password 的方法。
步骤 3:使用 Secrets Manager
在其他 AWS 服务中使用 Secrets Manager,需要在该服务的代码中获取 secret 的值。
import * as sm from '@aws-cdk/aws-secretsmanager'; const secret = sm.Secret.fromSecretNameV2(this, 'Secret', 'my-secret-name'); const password = JSON.parse(secret.secretValue.toString()).password;
在上面的代码中,我们获取了 secret 值,并将其转换为 JSON 对象。从 JSON 对象中获取 password,并使用它来进行下一步操作。
示例代码
下面是一个使用 @aws-cdk/aws-secretsmanager 创建和使用 secret 的完整示例代码:
-- -------------------- ---- ------- ------ - -- --- ---- ---------------- ------ - -- -- ---- ------------------------------ ------ - -- ------ ---- ---------------------- ------ - -- ---- ---- -------------------- ------ ----- ------- ------- --------- - ------------------ -------------- --- ------- ------- --------------- - ------------ --- ------- ----- ------ - --- --------------- ------------ - ----------- ----------------- --------------------- - --------------------- ---------------- --------- ---------- --- ------------------ ----------- -- --- -- -- ------ -- ----- -- - --- --------------------- ----------- - -------- --------------------------- ----- --- -------------------------------------- ------------ -------- ---------------- ------------- ---------------------------- ------------ - --------- ------------------------------ -- --- --- ------------------- -------------------- - ------ ----------------- --- - -
在上面的代码中,我们创建了一个名为 ‘my-secret-name’ 的 secret,并使用它来设置 Lambda 函数的环境变量。这样,Lambda 函数就可以访问 secret 的值。
最后,我们使用 cdk.CfnOutput
输出 secret 的 ARN,以便在部署完堆栈后方便查看 secret 的信息。
结论
本文介绍了使用 AWS CDK 中的 npm package @aws-cdk/aws-secretsmanager 来创建和管理 AWS Secrets Manager 的方法。在实现中,主要涉及到创建 secret 和在其他 AWS 服务中使用 secret。希望通过本文的介绍,读者可以更好地了解 AWS Secrets Manager 的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedab5eb5cbfe1ea061075a