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" 
} 
+1

请提供更多关于您如何设法解决问题的具体信息。 –