AWS EC2 部署的 .env 和 .gitignore 问题
Issues with .env and .gitignore for AWS EC2 deployment
所以我使用 react.js (MERN) 制作了一个应用程序。该应用程序有两个第三方 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/
所以我使用 react.js (MERN) 制作了一个应用程序。该应用程序有两个第三方 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/