Как заставить httpd / apache использовать указанные c access_key, secret_key и region?
Я использовал aws configure
для установки учетных данных по умолчанию для экземпляр EC2 с пользователем по умолчанию ec2. Я могу успешно получить их, используя aws configure list
, и могу успешно звонить на такие вещи, как aws s3api
при входе через s sh от имени пользователя ec2.
Я использую apache как httpd в рассматриваемом случае. Когда я пытаюсь позвонить из веб-приложения, например, используя php $output = shell_exec('aws s3api Example-Commands --output text 2>&1');
, я получаю сообщение об ошибке 403 Запрещено. Если я запускаю $output = shell_exec('aws configure list --output text 2>&1');
, то вижу, что access_key и secret_key не те, которые я предоставил, используя aws configure
. Если я вместо этого запускаю эти команды из S SH при входе в систему как пользователь ec2, они работают.
httpd, кажется, работает как пользователь "apache" при использовании
[ec2-user@ip-172-26-0-172 ~]$ ps aux | egrep '(apache|httpd)'
root 7425 0.0 0.3 4***76 2***6 ? Ss Apr15 1:39 /usr/sbin/httpd
apache 9074 0.3 1.0 5***16 8***8 ? Sl 22:45 0:01 /usr/sbin/httpd
apache 9075 0.0 0.2 4***20 1***0 ? Sl 22:45 0:00 /usr/sbin/httpd
apache 9081 0.2 0.8 5***04 6***6 ? Sl 22:45 0:00 /usr/sbin/httpd
nano ~/.aws/credentials
показывает учетные данные, которые я ранее вводил.
Я хочу, чтобы httpd использовал учетные данные, которые я ранее предоставил для aws конфигурации, но я не уверен, как это сделать.