如何解决如何在 Java 中禁用 AWS 临时安全凭证的权限?
我正在尝试使用 STS 删除对临时生成的会话令牌的访问权限。
但收到以下错误:
线程“main”com.amazonaws.services.securitytoken.model.MalformedPolicyDocumentException 中的异常:策略文档不应指定主体。 (服务:AWSSecurityTokenService;状态代码:400;错误代码:MalformedPolicyDocument;请求 ID:c563c2c1-62a8-478e-98a3-f6153ee8df03;代理:null)
AssumeRoleRequest roleRequest =
new AssumeRoleRequest()
.withRoleArn(ROLE_ARN)
.withTags(tags)
.withRoleSessionName(ROLE_SESSION_NAME);
roleRequest.setDurationSeconds(60 * 15);
roleRequest.withPolicy(**INVALIDATE_POLICY**);
AssumeRoleResult roleResponse = stsClient.assumeRole(roleRequest);
根据文档生成的策略:
{
"Version": "2012-10-17","Statement": {
"Principal": {
"AWS": "arn:aws:sts::ACCOUNT-ID-WITHOUT-HYPHENS:assumed-Role/Mary"
},"Effect": "Deny","Action": "s3:*","Resource": "arn:aws:s3:::EXAMPLE-BUCKET"
}
}
link to the session policy reference
解决方法
该文档指的是基于资源的策略(例如 S3 中的存储桶策略),而您正尝试将该策略附加到 IAM 角色。
将策略附加到 IAM 实体(用户、组、角色)时,无需指定 Principal
,因为该策略仅适用于附加策略的实体。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。