amazon web services-AWS假定EC2实例IAM角色不起作用



在我们的应用程序中,我们使用自定义角色访问aws API。在开发人员环境中,我们在app.config中提供了访问密钥和密钥,效果很好。

在prod环境中,我们设置了一个IAM角色,该角色具有对自定义角色的必要权限,EC2实例将使用该IAM角色启动。当我们试图使用代码切换角色时,我们得到的错误

消息:用户:arn:aws:sts::XXXXXXXX:假定的角色//i-0490fbbb5ea7df6a8未被授权在资源上执行:sts:AssumeRole:arn:aws:iam::XXXXXXXXXX:角色//strong>

代码:

AmazonSecurityTokenServiceClient stsClient = new AmazonSecurityTokenServiceClient();
AssumeRoleResponse assumeRoleResponse = await stsClient.AssumeRoleAsync(new AssumeRoleRequest
  {
     RoleArn = roleArn,
     RoleSessionName = sessionName
  });
var sessionCredentials = new SessionAWSCredentials(assumeRoleResponse.Credentials.AccessKeyId, assumeRoleResponse.Credentials.SecretAccessKey, assumeRoleResponse.Credentials.SessionToken);
AmazonS3Client s3Client = new AmazonS3Client(sessionCredentials);

政策详细信息:

"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::account_id:role/role-name"

这方面的任何帮助都将是伟大的。提前谢谢。

我们通过在自定义角色的信任关系中添加以下策略来解决问题。

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "<ARN of role that has to assume the custom role>"
  },
  "Action": "sts:AssumeRole"
}

相关内容

  • 没有找到相关文章