我在/home
目录上安装了一个带有AWS CLI的Centos7 VPS。我已经将我的凭据添加到aws configure
中,它生成了以下文件:
/home/.aws/credentials
/home/.aws/config
如果我运行以下代码,它将失败:
$client = new AwsLightsailLightsailClient([
'region' => 'eu-west-2',
'version' => '2016-11-28'
]);
错误消息为:
AccessDeniedException (client): User: arn:aws:sts::523423432423:assumed-role/AmazonLightsailInstanceRole/i-0eb5b2155b08e5185 is not authorized to perform
然而,如果我这样添加我的凭据,它会起作用:
$credentials = new AwsCredentialsCredentials('key', 'secret');
$client = new AwsLightsailLightsailClient([
'region' => 'eu-west-2',
'version' => '2016-11-28',
'credentials' => $credentials
]);
为了让我的脚本读取/home/.aws/credentials
文件,我需要做一些额外的事情吗?
Do I need to do something extra in order to get my script to read the /home/.aws/credentials file?
是的,您需要将.aws/credentials
目录放在运行该命令的用户的主目录中。这将类似于/home/username
,而意味着凭证的完整路径将是/home/username/.aws/credentials
。无论您将aws
命令安装到何处。