amazon-web-services - AWS EC2 部署的 .env 和 .gitignore 问题
问题描述
所以我使用 react.js (MERN) 制作了一个应用程序。该应用程序有两个 3rd 方 API。我将 ID 密钥存储在一个.env
文件中。为了安全起见,在将代码推送到 Github 时,我将代码.env
列在了一个.gitignore
文件中。但是有了这个,我应该如何让我的 EC2 实例访问隐藏在.gitignore
?
解决方案
你有多种方法可以做到这一点。下面是其中的一些。
- 将您的 .env 文件存储到具有适当权限的 S3 并进行静态加密。每次从 SCM(源代码管理)部署应用程序时,您的部署脚本都会将 .env 从 S3 拉到应用程序工作目录。但要做到这一点,您的实例必须具有一个角色,该角色具有适当的策略绑定,以便能够访问存储 .env 的 S3 存储桶。
- 利用 AWS Secret Manager。这样,您可以直接使用 AWS SDK 从您的应用程序中获取变量,而无需 .env 文件,它的作用是 AWS Secret Manager 存储您的变量(替换 .env 文件)并在应用程序中使用 AWS SDK,您可以检索这些值并可以直接与应用程序逻辑集成。https://aws.amazon.com/blogs/aws/aws-secrets-manager-store-distribute-and-rotate-credentials-securely/
推荐阅读
- azure-devops - 如何使用 Microsoft.VisualStudio.Services.WebApi 查询已完成的版本?
- firebase - React Native-如何按数字升序对平面列表中的项目进行排序?
- c# - 在 ef 核心中的列表 A 中找到不存在的项目并且在列表 B 中存在
- swift - Swift:声明 Database.database().reference() 时,ActionExtension 未打开
- r - 只保留第一次出现为真的最快方法;设置休息为假
- python - 在一维序列的大列表上的 Scipy 二次一维插值非常慢
- python - 如何使用 python-pptx 包自动从 Microsoft Forms 中提取信息?
- r - 在 r 中使用 left_join() 函数后值变为 NA
- fortran - 如何使用两组循环在 Fortran 中打开、读取和写入多个文件?
- javascript - 无法为范围注册 ServiceWorker ('https://.xxx.net/firebase-cloud-messaging-push-scope')