继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕桂英3389331
关注TA
已关注
手记 383
粉丝 43
获赞 188

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
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP