AWS - 您无权在从ec2客户端对象访问describeInstanceStatus时执行此操作

时间:2014-04-25 09:24:39

标签: php amazon-web-services amazon-ec2

我使用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论坛但没有结果。谢谢。

1 个答案:

答案 0 :(得分:1)

错误来自您通过AWS IAM授予/拒绝的Access。

您在代码中使用其访问/密钥的用户没有描述实例的权限。此权限在IAM策略中配置,该策略应用于此用户。

您的代码没有任何问题。您需要查看有关向该用户授予/拒绝所有权限的IAM策略。