我在Laravel 8中有一个项目,我有一些秘密的环境参数,我不想将它们与我的应用程序一起发布到github.我将使用github操作将我的应用程序部署到AWS beanstalk.在部署所有应用程序时,我如何保护所有机密并将其放入EC2实例.

推荐答案

有多种方法可以做到这一点,您不应该将应用程序中的env文件发送到github.

  1. 您可以使用beanstalk自己的参数存储页面.但是,如果您这样做,另一个有权访问您的AWS帐户的开发人员可以看到所有env参数.这是一个简单的键值存储页面.

    Benastalk面板->;( Select 您的环境)>;配置->;软件

beanstalk image

  1. 在systems manager下有一个名为Parameter Store的服务(这是我喜欢的方式)

在这里,您可以安全地添加任意多的参数.您可以简单地添加字符串参数以及安全(如密码或api密钥)字符串,也可以添加整数,但字符串和安全类型是我的最爱.

可以按路径拆分所有参数,如"APP_NAME/DB_NAME"等.

custom parameter store index

您应该将所有参数从参数存储区获取到EC2实例,并将它们放在新创建的服务器上.环境文件.

  1. github操作中有github机密,您可以将所有机密参数放入github机密页面.您可以从github secrets获取所有机密,并将机密放入应用程序,然后直接从github发送到AWS.

您可以转到存储库中的设置并查看此页面:

github actions settings

Laravel相关问答推荐

提交表格后如何在Livewire 3中调度模式窗口?

在GitHub操作中缺少PHPStan和PHPMD输出,但在本地存在

如何在自定义表单请求中获取错误验证数据

我的共享主机上的每个帖子请求都出现 503 服务不可用

Laravel phpunit 测试失败并出现 PDOException:SQLSTATE[HY000]:一般错误:1 接近0:语法错误

在 Laravel 中设置多个 Vue 组件的问题

所有 POST 请求上的 Laravel 4 CSRF

使用 Amazon S3 的 Storage::get() 返回 false

Laravel 中间件返回(try 获取非对象的属性 headers)错误

Lumen和 MongoDB?

Laravel 5 make:控制器在应用程序文件夹而不是控制器文件夹中创建控制器

laravel 5 - assets资源 list 中未定义 css 文件?

在 Laravel Eloquent 中,limit 与 take 有什么区别?

在 Laravel 的 Homestead 中运行 PHPUnit

Laravel 说 Auth guard [] 没有定义

控制器外部的 Laravel 访问请求对象

Laravel 存储链接不适用于生产

在 Laravel artisan 命令中使用详细

如何获取 Laravel 块的返回值?

如果参数不是整数,如何以不同方式定义路由