0

我正在尝试使用 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);

基于文档生成的策略:

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_disable-perms.html

   {
    "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"
    }
    }

链接到会话策略参考

4

1 回答 1

0

该文档指的是基于资源的策略(例如 S3 中的存储桶策略),而您正在尝试将策略附加到IAM Role

将策略附加到 IAM 实体(用户、组、角色)时,无需指定 a Principal,因为该策略仅适用于该策略所附加到的实体。

于 2021-02-02T21:05:04.847 回答