我有一个我已经构建并使用AWS SDK PHP的Web应用程序,目前我从位于/etc/aws/creds.php内的外部配置文件中提取所有凭据(返回一个param值的php数组) )。这适用于默认的php.ini设置(松散和打开)。当我开始锁定事情时,我正在努力解决这个错误:
PHP致命错误:未捕获的异常'Aws \ Common \ Exception InstanceProfileCredentialsException'with message'从实例配置文件元数据服务器检索凭据时出错。如果您未在Amazon EC2内部运行,则在创建客户端或提供实例化的Aws \ Common \ Credentials时,必须在“密钥”和“机密”选项中提供AWS访问密钥ID和秘密访问密钥。 CredentialsInterface对象。
这在/ var / log / httpd / error_log中被选中。 AWS SDK API上的文档说我必须为给定用户使用.aws / credentials文件。我的用户是http(对于apache),其主目录是/ srv / http /。我无法有效地将凭据放在该文件中,因为它可以公开供我网站上的任何人使用。
我的问题是如何更改此凭据文件的位置?我需要将位置更改为凭证文件,以便我可以解决错误,这样我就可以收紧php.ini display_errors = Off,这样我的脚本就能正常安全地运行。 (注意:我知道单个php.ini更改不是安全的圣杯,它只是让我完全锁定我的php.ini配置的能力之一)。