为了账号安全,请及时绑定邮箱和手机立即绑定

如何在AWS Secrets Manager中设置环境变量

AWS Secrets Manager 是一项服务,可帮助您安全地存储和管理敏感数据,例如 API 密钥、密码和数据库凭证。AWS Secrets Manager 的一个常见用例是管理应用程序中的 配置变量。在 Secrets Manager 中安全存储配置变量可以减少代码中泄露敏感数据的风险,并增强您的安全状况。

本文将指导您如何在 AWS Secrets Manager 服务中设置环境变量的步骤,以及如何检索它们以在您的应用程序中使用它们。

前提条件

在设置AWS Secrets Manager的环境变量之前,确保你已经做好以下准备:

  1. AWS 账户:要使用 Secrets Manager,你需要一个 AWS 账户。
  2. AWS CLI/SDK:请确保你已经安装了 AWS CLI 或将 SDK 集成到你的应用程序中,以便与 Secrets Manager 进行交互。
  3. IAM 权限:确保你拥有创建和访问 AWS Secrets Manager 中的密文所需的 IAM 权限。
第一步:将环境变量存入 AWS Secrets Manager:
1.1 你可以访问 AWS Secrets Manager 页面
  1. 登录到AWS管理控制台。
  2. 安全、身份和合规性部分,找到并点击Secrets Manager
1.2 创建一个新的秘密

在 Secrets Manager 仪表板中,点击 保存新秘密

选择其他类型的秘密,如果您是以键值对的形式存储环境变量的话。

请输入环境设置,格式为 键值对 的形式。比如:

admin我的超秘密码API_KEYxxxxxxxxAPP_SECRET_KEYzzzzzzzz

将变量的名称作为,实际值作为输入。

点击下一步来继续往下。

1.3 代号及其描述

给它起个名字,例如 MyAppEnvVars。这个名字将帮助你以后更容易找到这个密钥。

可选地,您还可以提供一个描述(例如:‘MyApp 的环境设置’)。

点下一步。

1.4 设置密钥访问权限

选择具有访问该密钥权限的 AWS IAM 角色或用户。您可以授予特定角色或用户访问权限,或者采用默认设置。

你可以启用密钥的自动旋转,尽管这是可选的。对于环境变量来说,通常不需要自动旋转,除非你存储的是像 API 密钥这样需要定期更改的秘密。

点击 下一步 按钮。

1.5 审查并保存秘密

查看详细信息,然后点击保存来保存信息。

你现在已经把环境变量值安全地存到“AWS Secrets Manager”里了。

顶尖机器学习课程,帮助你提升职业发展 机器学习已经成为科技专业人员必备的技能。这里有许多优质的机器学习课程供你选择……www.goexam.today
步骤二:从 AWS Secrets Manager 获取变量

一旦环境变量或密钥被存储,你就可以在应用程序中访问它们。AWS 提供了几种包括但不限于通过 AWS SDK、AWS CLI 或通过将 IAM 角色附加到实例来获取这些密钥或秘密的方法。

2.1 使用 AWS SDK(比如 Node.js)

你可以通过以下方式使用 AWS SDK for Node.js*** 从 AWS Secrets Manager 检索环境变量:

安装AWS SDK。

    npm install aws-sdk

执行此命令以安装 AWS SDK

查看你 Node.js 代码中的秘密

    const AWS = require('aws-sdk'); const secretsManager = new AWS.SecretsManager();  const secretName = 'MyAppEnvVars'; // 存储在 Secrets Manager 中的密钥名,用于获取环境变量值  // 获取密钥值的函数 const getSecretValue = async () => {   try {     const data = await secretsManager.getSecretValue({ SecretId: secretName }).promise();          if (data.SecretString) {       const secrets = JSON.parse(data.SecretString);       console.log('DB_USERNAME:', secrets.DB_USERNAME);  // 访问单个变量值       console.log('DB_PASSWORD:', secrets.DB_PASSWORD);     }   } catch (err) {     console.error('获取密钥值出错:', err);   } };  getSecretValue();

这将提取存储在密钥中的环境变量并记录它们。

2.2 使用 AWS 命令行界面 (CLI) 检索密钥

您也可以使用 AWS CLI 来获取并使用密钥信息。这在测试或手动检索时非常有用。

运行下面的命令,

aws secretsmanager get-secret-value --secret-id MyAppEnvVars --query SecretString --output text

这条命令会返回存储在 MyAppEnvVars secret 中的值。你可以根据需要处理结果。

2.3 在 EC2 和 Lambda 服务中来使用 IAM 角色功能

如果你的应用运行在EC2实例上或作为AWS Lambda函数运行,你可以通过附加具有适当权限的IAM角色来授予其访问 Secrets Manager 的权限。

  1. 附加IAM策略到EC2实例或Lambda执行角色:创建一个具有 secretsmanager:GetSecretValue 权限(权限类型)的IAM策略,并将其附加到EC2实例或Lambda执行角色。
  2. 访问密钥值:使用相同的代码示例通过 AWS SDK 获取密钥值。
步骤三:在您的应用程序中使用环境变量

一旦从 AWS Secrets Manager 中检索到环境变量,你可以像使用其他环境变量一样使用它们。这里有一个示例,说明如何在数据库连接字符串中的,或在 API 请求中的使用这些值。

数据库连接的例子:
    const dbUsername = secrets.DB_USERNAME;  
    const dbPassword = secrets.DB_PASSWORD;  
    const connectionString = `mongodb://username:password@localhost:27017/mydatabase`;  
    const connectToDatabase = async () => {  
      try {  
        // 使用从 secrets 中获取的用户名和密码连接到数据库  
        await mongoose.connect(connectionString.replace('username', dbUsername).replace('password', dbPassword));  
        console.log('已连接到数据库');  
      } catch (err) {  
        console.error('数据库连接失败', err);  
      }  
    };  
    connectToDatabase();
顶尖的机器学习课程,助力你的职业发展机器学习已成为技术专业人士的必备技能。有很多优秀的机器学习课程可以供你选择……www.goexam.today
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消