AWS承担EC2实例IAM角色不起作用的角色
问题描述:
在我们的应用程序中,我们访问具有自定义角色的aws API。在开发人员环境中,我们在app.config中提供访问密钥和密钥,并且它工作得很好。AWS承担EC2实例IAM角色不起作用的角色
在prod环境中,我们为自定义角色设置了具有必要权限的IAM角色,并使用该IAM角色启动了EC2实例。当我们尝试使用代码来切换角色,那么我们得到以下错误
消息:用户:阿尔恩:AWS:STS :: XXXXXXXXX:假设角色// I-0490fbbb5ea7df6a8无权执行:STS: AssumeRole资源:阿尔恩:AWS:IAM :: XXXXXXXXXX:角色/
代码:
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"
}
请提供更多关于您如何设法解决问题的具体信息。 –