我使用AWS文档中提到的方法创建了一个ec2客户端。我正在为SDK使用aws.phar文件。ec2客户端是正确创建的,因为当我var_dump
客户端时,它会返回Ec2Client对象。但是,当我尝试从ec2客户端访问describeInstanceStatus时,它会抛出一个You are not authorized to perform this operation.
异常。这是我的密码。
use Aws'Ec2'Ec2Client;
require 'aws.phar';
$ec2Client = Ec2Client::factory(array(
'key' => '<aws access key>',
'secret' => '<aws secret key>',
'region' => 'us-east-1'
));
try{
$ec2Client->describeInstanceStatus(array(
'DryRun' => false,
'InstanceIds' => array('InstanceId'),
'Filters' => array(
array(
'Name' => 'availability-zone',
'Values' => array('us-east-1'),
),
),
'MaxResults' => 10,
'IncludeAllInstances' => false,
));}
catch(Exception $e){
echo $e->getMessage();
}
请告诉我我哪里搞错了。我试过在谷歌上搜索,在AWS论坛上搜索,但没有结果。非常感谢。
错误来自通过AWS IAM授予/拒绝的访问。
您在代码中使用其访问/密钥的用户没有描述实例的权限。此权限在应用于此用户的IAM策略中配置。
您的代码没有任何问题。您需要查看IAM策略,了解向该用户授予/拒绝的所有权限。