AWS AssumeRole autorisation ne fonctionne pas

Je suis tente d'appeler la AssumeRole fonction à l'aide d'AWS sts dans mon programme PHP depuis le je veux créer des informations d'identification temporaires pour permettre à un utilisateur de créer un objet pour une AWS seau.

Ci-dessous est la fumction je fais appel PHP:

  $sts = StsClient::factory(array(
                'key'    => 'XXXXXXXXXXXXXX',
                'secret' => 'XXXXXXXXXXXXXXXX',
                'token.ttd' => $timetodie
            ));             
  $bucket = "mybucket";             
            $result1 = $sts->assumeRole(array(          
                'RoleArn' => 'arn:aws:iam::123456789012:role/createPic',
                'RoleSessionName' => 'mytest',
                'Policy' => json_encode(array(
                        'Statement' => array(
                             array(
                                  'Sid' => 'Deny attributes',
                                  'Action' => array(
                                  's3:deleteObject', 
                                  's3:deleteBucket'
                                  ),
                                  'Effect' => 'Deny',
                                  'Resource' => array(
                                  "arn:aws:s3:::{$bucket}",
                                  "arn:aws:s3:::{$bucket}/AWSLogs/*"
                                  ),
                                  'Principal' => array(
                                  'AWS' =>   "*"
                                  )
                              ) 
                          )
                      )
                  ),
                'DurationSeconds' => 3600,
             //  'ExternalId' => 'string',
            ));

            $credentials  = $result1->get('Credentials');

Cependant, je reçois l'erreur suivante:

Utilisateur arn:aws:iam::123456789012:utilisateur/TVMUser n'est pas autorisé à effectuer: sts:AssumeRole sur la ressource: arn:aws:iam::123456789012:rôle/createPic

Ci-dessous est ma stratégie d'autorisations pour l'utilisateur TVMUser sur ma console AWS:

      {
  "Version": "2012-10-17",
 "Statement": [
 {
  "Effect":"Allow",
  "Action":"ec2:RunInstances",
  "Resource":"*"
 },
 {
  "Effect":"Allow",
  "Action":"iam:PassRole",
  "Resource":"arn:aws:iam::791758789361:user/TVMUser"

 },

 {
  "Effect":"Allow",
  "Action":"sts:AssumeRole",
  "Resource":"arn:aws:iam::791758789361:role/createPic"

 }
]
}

Ci-dessous est mon rôle en politique pour le rôle createPic:

       {
  "Version": "2012-10-17",
 "Statement": [
 {
  "Action": [

    "s3:Get*",
    "s3:List*",
    "s3:Put*",

  ],
  "Effect": "Allow",
  "Resource": "*"
  },
{
  "Effect": "Allow",

  "Action": "sts:AssumeRole",
  "Resource":  "arn:aws:iam::123456789012:role/createPic"
}
]
}

Quelqu'un maintenant que je suis absent de mon AWS énoncés de politique et d'installation sur AWS, donc je n'ai pas l'erreur: l'Utilisateur arn:aws:iam::123456789012:utilisateur/TVMUser n'est pas autorisé à effectuer: sts:AssumeRole sur la ressource: arn:aws:iam::123456789012:rôle/createPic?

Suis-je raté quelque chose?

Je suppose que les ressources de l'autorisation assumeRole 791758789361 est une faute de frappe et vous dire 123456789012.

OriginalL'auteur Dave | 2014-02-22