Ich versuche, die AssumeRole Funktion AWS M. in meinem PHP-Programm zu nennen, da ich temporäre Anmeldeinformationen erstellt werden soll, damit ein Benutzer ein Objekt für einen AWS Eimer erstellen.AWS AssumeRole Genehmigung arbeitet nicht
Unten finden Sie die fumction ich PHP nenne:
$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');
Allerdings halte ich die folgende Fehlermeldung erhalten:
Benutzer arn: aws: iam :: 123456789012: Benutzer/ist TVMUser nicht autorisiert durchführen: sts: AssumeRole auf Ressource: arn: aws: iam :: 123456789012: Rolle/createPic
Unten ist meine Berechtigung Politik für Benutzer TVMUser auf meiner AWS-Konsole:
Unten ist meine Rolle Politik für die Rolle 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"
}
]
}
Hat jemand jetzt, was ich in meiner AWS politischen Erklärungen und Setup auf AWS bin fehlt also nicht den Fehler Ich erhalte: User arn: aws : iam :: 123456789012: user/TVMUser ist nicht zur Ausführung berechtigt: sts: AssumeRole auf Ressource: arn: aws: iam :: 123456789012: role/createPic?
Fehle ich etwas?
Ich nehme an, die Ressource in der Erlaubnis assumeRole 791.758.789.361 ein Tippfehler ist und Sie meinen 123456789012. –