2

我正在尝试IAM使用aws-sdkas so...

var sts = new AWS.STS();
sts.assumeRole({
  RoleArn: 'arn:aws:iam::xxxxxx:root',
  RoleSessionName: 'awssdk'
}, function(err, data) {
  if (err) { // an error occurred
    console.log('Cannot assume role');
    console.log(err, err.stack);
  } 
  else { // successful response
    AWS.config.update({
      accessKeyId: data.Credentials.AccessKeyId,
      secretAccessKey: data.Credentials.SecretAccessKey,
      sessionToken: data.Credentials.SessionToken
    });
  }
});

但我不断...

InvalidClientTokenId:请求中包含的安全令牌无效

但是,如果我只使用以下内容,我可以连接......

AWS.config.update({ accessKeyId: process.env.ID, secretAccessKey: process.env.SECRET });

为什么我不能担任角色?

4

1 回答 1

1

以下

RoleArn: 'arn:aws:iam::xxxxxx:root',

不是 IAM 角色。您似乎正在尝试假设 IAM 根用户。角色的正确 ARN 具有以下形式

arn:aws:iam::account-id:role/role-name-with-path
于 2020-09-05T00:07:52.660 回答