Interface IamPolicyReader

All Known Implementing Classes:
DefaultIamPolicyReader

@ThreadSafe public interface IamPolicyReader
The IamPolicyReader converts a JSON policy into an IamPolicy.

Usage Examples

Log the number of statements in a policy downloaded from IAM.
// IamClient requires a dependency on software.amazon.awssdk:iam
try (IamClient iam = IamClient.builder().region(Region.AWS_GLOBAL).build()) {
    String policyArn = "arn:aws:iam::123456789012:policy/AllowWriteBookMetadata";
    GetPolicyResponse getPolicyResponse = iam.getPolicy(r -> r.policyArn(policyArn));

    String policyVersion = getPolicyResponse.defaultVersionId();
    GetPolicyVersionResponse getPolicyVersionResponse =
        iam.getPolicyVersion(r -> r.policyArn(policyArn).versionId(policyVersion));

    IamPolicy policy = IamPolicyReader.create().read(getPolicyVersionResponse.policyVersion().document());

    System.out.println("Number of statements in the " + policyArn + ": " + policy.statements().size());
}
See Also:
  • Method Details

    • create

      static IamPolicyReader create()
      Create a new IamPolicyReader.

      This method is inexpensive, allowing the creation of readers wherever they are needed.

    • read

      IamPolicy read(String policy)
      Read a policy from a String.

      This only performs minimal validation on the provided policy.

      Throws:
      RuntimeException - If the provided policy is not valid JSON or is missing a minimal set of required fields.
    • read

      IamPolicy read(InputStream policy)
      Read a policy from an InputStream.

      The stream must provide a UTF-8 encoded string representing the policy. This only performs minimal validation on the provided policy.

      Throws:
      RuntimeException - If the provided policy is not valid JSON or is missing a minimal set of required fields.
    • read

      IamPolicy read(byte[] policy)
      Read a policy from a byte array.

      The stream must provide a UTF-8 encoded string representing the policy. This only performs minimal validation on the provided policy.

      Throws:
      RuntimeException - If the provided policy is not valid JSON or is missing a minimal set of required fields.