我使用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论坛但没有结果。谢谢。
答案 0 :(得分:1)
错误来自您通过AWS IAM授予/拒绝的Access。
您在代码中使用其访问/密钥的用户没有描述实例的权限。此权限在IAM策略中配置,该策略应用于此用户。
您的代码没有任何问题。您需要查看有关向该用户授予/拒绝所有权限的IAM策略。