AWS CodeBuild无法与RDS实例互动

Vic*_*tor 2 php amazon-web-services amazon-rds aws-codebuild

我在AWS中拥有最基本的设置:

  • 一个可公开访问的RDS实例(PostgreSQL 9.6.6-与我的开发实例相同)
  • 一个CodeBuild项目

都在默认VPC中。

我的应用程序是用Laravel 5.5编写的,并且在某些时候buildspec.yml运行./artisan migrate --force,并且CodeBuild输出以下错误:

[Container] 2018/03/10 19:41:36 Running command php artisan migrate --force

[Illuminate\Database\QueryException] 
SQLSTATE[08006] [7] timeout expired (SQL: select * from information_schema. 
tables where table_schema = public and table_name = migrations)     

[Doctrine\DBAL\Driver\PDOException] 
SQLSTATE[08006] [7] timeout expired    

[PDOException] 
SQLSTATE[08006] [7] timeout expired 
Run Code Online (Sandbox Code Playgroud)

我应该从哪里开始寻找错误?

Sud*_*ran 6

您需要确保RDS安全组允许来自Code Build的入站流量。

  1. 转到https://ip-ranges.amazonaws.com/ip-ranges.json
  2. 搜索CODEBUILD并选择您的地区。
  3. 将IP添加到RDS安全组中的入站规则。

  • 我在几个地方看到过这个建议。这不是一个安全问题吗?这是否意味着该地区使用 CodeBuild 的任何人都可以访问您的数据库(尽管他们仍然需要凭据)? (2认同)