Comment permettre d'accéder à AWS STS AssumeRole

J'obtiens une erreur lors de l'appel à assume role méthode de STS. Il dit que l'utilisateur n'est pas autorisé à effectuer sts:AsumeRole des ressources xxx.

Je n'ai suivantes:

  1. J'ai créé un rôle à l'accès à un compartiment S3.
  2. J'ai couru un test sur la politique simulateur et fonctionne très bien
  3. J'ai créé un nouveau groupe, et en cela, j'ai créé une nouvelle politique qui
    permet à tous les sts actions, en plus de toutes les ressources.
  4. J'ai couru un test avec la politique de simulateur, pour sts assumer de rôle, en soulignant
    à l'ARN de rôle créé à l'étape un, et il fonctionne très bien
  5. J'ai créé un nouvel utilisateur, et de le mettre dans le groupe créé à l'étape 3
  6. Avec les informations d'identification de l'utilisateur, j'essaye d'obtenir de nouvelles informations d'identification
    à l'aide de sts asume rôle, mais jetez-moi une erreur que de dire que mon utilisateur n'est pas
    autorisés à effectuer des sts:AssumeRole

Ce que je fais mal?

Politique dans le Groupe

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "some-large-id",
            "Effect": "Allow",
            "Action": [
                "sts:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Politique dans le rôle

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "another-large-id",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket-name/*"
            ]
        }
    ]
}

Et enfin appeler comme ça

let policy = {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "new-custom-id",
            "Effect": "Allow",
            "Action": ["s3:PutObject"],
            "Resource": ["arn:aws:s3:::my-bucket-name/*"]
        }
    ]
};

let params = {
    DurationSeconds: 3600, 
    ExternalId: 'some-value', 
    Policy: JSON.stringify(policy), 
    RoleArn: "arn:aws:iam::NUMBER:role/ROLE-NAME", //Cheked, role is the same that step one
    RoleSessionName: this.makeNewSessionId()
};
let sts = new AWS.STS({ apiVersion: '2012-08-10' });

sts.assumeRole(params, (err, data) => {
    if(err) console.log(err);
    else console.log(data);
});

OriginalL'auteur Vladimir Venegas | 2016-12-26