Skip to main content

About AWS Key Management Service (KMS)

The AWS Key Management Service connector gathers key metadata, aliases, policies, grants, tags, and rotation status so controls can prove how keys are governed. Iru uses sts:AssumeRole with an external ID. The recommended inline policy below avoids kms:Decrypt and other cryptographic data operations (metadata only).

How It Works

Iru runs in its own AWS account. To read KMS key metadata in your account, you create an IAM role with sts:AssumeRole trust (wizard External ID) and read-only kms: permissions appropriate for inventory (avoid policies that bundle write-style capabilities). Paste the role’s ARN back into Iru. Skip AWSKeyManagementServicePowerUser for this use case - it bundles write-style capabilities. Use the explicit inline JSON from the wizard path or the template below.
DetailValue
CategorySecurity / cryptography
AuthenticationCross-account IAM role
References: KMS developer guide, IAM policies for KMS.

Prerequisites

  • IAM admin rights to publish roles.
  • Live connector strings (principal, external ID).

Connect AWS KMS to Iru

Start here: open the source wizard and copy the trust policy (and note the external ID). When you are ready to create the role in AWS, switch to the AWS tab and follow Create the IAM role in AWS. After you have the Role ARN, return to the Iru Compliance tab and complete Submit the role ARN in Iru below.

Get the trust policy from Iru

1

Open Sources

In Iru Compliance, on the left navigation bar, expand Compliance and select Sources.
Left navigation: Compliance expanded, Sources selected
2

Turn on AWS KMS

Find AWS KMS (use Category or Search by name or description). On that card, turn on the toggle. Leave the Iru is requesting access to external services wizard tab open.
3

Copy the trust policy JSON

The wizard shows the trust policy JSON your IAM role must use (Principal and sts:ExternalId). Below is an example of the structure; copy the live JSON from your wizard so the account, principal ARN, and external ID match exactly.
copy=false
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::753695775620:role/IruConnect"
      },
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "YOUR_EXTERNAL_ID"
        }
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
4

Switch to AWS to create the role

Keep the Iru wizard tab open for reference, then switch to the AWS tab and follow Create the IAM role in AWS.

Submit the role ARN in Iru

Finish the AWS tab first (through Create the IAM role in AWS) so you have the Role ARN from the new role.
1

Paste the IAM Role ARN

Return to the Iru wizard tab. Paste the Role ARN where the connector prompts for it.
2

Finish the connection

Click Submit Role. When the connection succeeds, the wizard shows Connection Configured.
3

Confirm the source is Active

Close the Iru is requesting access to external services browser tab, then return to ComplianceSources and confirm the AWS KMS card is Active.

Troubleshooting

Check pop-up blocker settings for the Iru site and try again.
Fix external ID drift.
Resource policies on individual keys may deny DescribeKey - adjust key policies if auditors require full visibility.
Always listed but sometimes less introspectable than customer-managed keys - expected per AWS behavior.

Considerations

Keys are Regional: inventory spans enabled Regions.

Keys are Regional; inventory spans enabled Regions.

Works purely off API metadata: no key material…

Works purely off API metadata - no key material leaves KMS through decrypt calls from this connector.

Sources Management

Browse and manage every Compliance source.

Getting Started With Compliance

Frameworks, actions, and Artifacts.

Iru Overview

How Endpoint, Compliance, and Identity fit together.

Artifacts Management

Upload, review, and organize evidence from sources and actions.