1
AmazonIdentityManagementClient identityManagementClient = new AmazonIdentityManagementClient();

System.out.println("This is the role");
GetRoleResult roleResult = identityManagementClient.getRole(new GetRoleRequest().withRoleName("myRole"));
System.out.println(roleResult.getRole().toString());

System.out.println("This is the Policy");       
GetRolePolicyResult rolePolicyResult  = identityManagementClient.getRolePolicy(new GetRolePolicyRequest()
        .withRoleName("myRole").withPolicyName("AmazonS3FullAccess"));

System.out.println(rolePolicyResult.getPolicyDocument());
System.out.println(rolePolicyResult.getPolicyName());

我已将 IAM 角色附加到我的实例 - myRole。我已将其AmazonS3FullAccess策略附加到 myRole。我使用上面的代码使用 SDK 获取与 myRole 关联的策略,但是当我尝试获取策略时遇到 NoSuchEntity 异常。我能够获取角色名称,并且我的输出是 myRole,但是当我尝试获取策略详细信息时遇到错误。

我不知道为什么。
我在这里做错了什么?

4

1 回答 1

0

我只设法以另一种方式(AWS Java SDK v.1x)获取策略文档 - 通过使用 AmazonIdentityManagementClientgetPolicyVersion方法。

对此的GetPolicyVersionRequest用于 policyArn(您可以从您的角色名称的listAttachedRolePolicies结果的策略详细信息中获取),而versionId来自对您的 policyArn 的AmazonIdentityManagementClientgetPolicy返回的策略调用getDefaultVersionId()

于 2019-05-14T10:00:18.467 回答