ICF 1.5.20.35

AWS Bedrock connector

AWS Bedrock is Amazon Web Services' managed service for building and deploying AI agents. The AWS Bedrock connector is a read-only connector that discovers Bedrock agents and governance-relevant objects including aliases, action groups, knowledge bases, guardrails, identity bindings, and tool credential classifications.

Contact your Ping Identity Customer Success Outcome Manager (CSOM) or Account Executive to obtain this connector.

Retrieval of agentIdentityBinding and agentToolCredentials is enabled through an offline inventory mechanism that requires an Agent Governance license. Contact your CSOM for details.

AWS Bedrock requirements

The AWS Bedrock connector is read-only. It needs Bedrock read permissions and S3 read permission for the inventory bucket.

Required permissions

Use the narrowest policy your environment allows. The following is a starting point:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadBedrockAgents",
      "Effect": "Allow",
      "Action": [
        "bedrock:ListAgents",
        "bedrock:GetAgent",
        "bedrock:ListAgentAliases",
        "bedrock:GetAgentAlias",
        "bedrock:ListAgentActionGroups",
        "bedrock:GetAgentActionGroup",
        "bedrock:ListAgentKnowledgeBases",
        "bedrock:ListAgentCollaborators",
        "bedrock:GetGuardrail"
      ],
      "Resource": "*"
    },
    {
      "Sid": "ReadBedrockInventoryArtifacts",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::<inventory-bucket>/latest/*"
    }
  ]
}

Replace <inventory-bucket> with the name of your S3 inventory bucket (the value of the inventoryBucket configuration property, which defaults to bedrock-core-inventory).

The connector doesn’t need account-wide IAM list/read permissions when the companion inventory job is deployed. IAM scanning belongs to the inventory job, not to the connector.

Create an IAM user for explicit credentials

If useDefaultCredentialsProvider is false, create a dedicated IAM user and attach the policy above to it.

  1. In the AWS console, go to IAM > Policies > Create policy.

  2. On the JSON tab, paste the policy from Required permissions, then select Next.

  3. Name the policy iga-bedrock-connector-policy, then select Create policy.

  4. Go to IAM > Users > Create user.

  5. Enter a username, for example iga-bedrock-connector.

    Don’t select Provide user access to the AWS Management Console. The connector authenticates with an access key, not console sign-on.
  6. Select Next.

  7. Under Set permissions, choose Attach policies directly.

  8. Search for iga-bedrock-connector-policy, select it, then select Next > Create user.

To create the access key:

  1. Open the user, then select the Security credentials tab.

  2. Select Create access key.

  3. For Use case, select Application running outside AWS, then select Next.

  4. Copy the access key ID and secret access key. You’ll need these for the accessKeyId and secretAccessKey configuration properties.

Before you configure the connector, confirm you have the following:

Requirement Value

AWS Bedrock Agents

Configured in the target AWS account and region

S3 inventory bucket

Required for identity binding and tool credential enrichment

Companion inventory job

Required if you want agentIdentityBinding, agentPrincipals, or agentToolCredentials populated

Install the AWS Bedrock connector

To check for an Advanced Identity Cloud application for this connector, refer to:

To obtain the connector .jar file, contact your Ping Identity Customer Success Outcome Manager (CSOM) or Account Executive.

  • If you’re running the connector locally, place the .jar file in the /path/to/openidm/connectors directory.

  • If you’re using a remote connector server (RCS), place the .jar file in the /path/to/openicf/connectors directory on the RCS.

Configure the AWS Bedrock connector

Create a connector configuration using the IDM admin UI:

  1. From the navigation bar, click Configure > Connectors.

  2. On the Connectors page, click New Connector.

  3. On the New Connector page, type a Connector Name.

  4. From the Connector Type list, select AWS Bedrock Connector - 1.5.20.33.

  5. Complete the Base Connector Details and any applicable Additional Options.

    For a list of all configuration properties, refer to AWS Bedrock Connector Configuration.
  6. Click Save.

When your connector is configured correctly, the connector displays as Active in the admin UI.

Refer to this procedure to create a connector configuration over REST.

Connection details

The AWS Bedrock connector uses the following configuration properties:

Property Type Required Default Description

region

String

Yes

us-east-1

AWS region for Bedrock and S3 calls. Deploy one connector configuration per region.

accountId

String

Yes

None

AWS account ID. Used to construct Bedrock Agent ARNs and relationship identifiers.

useDefaultCredentialsProvider

Boolean

Yes

true

When true, uses the AWS SDK default credential provider chain. When false, provide accessKeyId and secretAccessKey.

accessKeyId

String

Conditional

None

AWS access key ID. Required when useDefaultCredentialsProvider=false.

secretAccessKey

GuardedString

Conditional

None

AWS secret access key. Required when useDefaultCredentialsProvider=false.

inventoryBucket

String

Yes

bedrock-core-inventory

S3 bucket containing latest/agent-bindings.json and latest/agent-tool-credentials.json. Use the bucket name only, don’t include s3:// or a key prefix.

bindingsCacheTtlSeconds

Long

No

300

Cache TTL for S3 inventory artifacts.

Example AWS Bedrock configuration

{
  "connectorRef": {
    "bundleName": "org.forgerock.openicf.connectors.awsbedrock-connector",
    "bundleVersion": "[1.5.0.0,1.6.0.0)",
    "connectorName": "org.forgerock.openicf.connectors.awsbedrock.AwsBedrockConnector"
  },
  "configurationProperties": {
    "region": "us-east-1",
    "accountId": "123456789012",
    "useDefaultCredentialsProvider": false,
    "accessKeyId": "AKIA...",
    "secretAccessKey": {
      "$crypto": {
        "type": "x-simple-encryption",
        "value": {
          "cipher": "...",
          "data": "...",
          "iv": "...",
          "key": "openidm-sym-default"
        }
      }
    },
    "inventoryBucket": "bedrock-core-inventory",
    "bindingsCacheTtlSeconds": 300
  }
}

Test the AWS Bedrock connector

Test that the configuration is correct by running the following command:

curl \
--header "X-OpenIDM-Username: openidm-admin" \
--header "X-OpenIDM-Password: openidm-admin" \
--header "Accept-API-Version: resource=1.0" \
--request POST \
"http://localhost:8080/openidm/system/awsbedrock?_action=test"
{
  "name": "awsbedrock",
  "enabled": true,
  "config": "config/provisioner.openicf/awsbedrock",
  "connectorRef": {
    "bundleVersion": "[1.5.0.0,1.6.0.0)",
    "bundleName": "org.forgerock.openicf.connectors.awsbedrock-connector",
    "connectorName": "org.forgerock.openicf.connectors.awsbedrock.AwsBedrockConnector"
  },
  "displayName": "AWS Bedrock Connector",
  "objectTypes": [
    "__ACCOUNT__",
    "__ALL__"
  ],
  "ok": true
}

If the command returns "ok": true, your connector has been configured correctly and can authenticate to the Bedrock API.

TestOp validates connectivity by calling listAgents(). It doesn’t prove that the S3 inventory artifacts exist. Verify S3 inventory separately when validating identity bindings or tool credential records.

AWS Bedrock remote connector

If you want to run this connector outside of PingOne Advanced Identity Cloud or IDM, you can configure the AWS Bedrock connector as a remote connector. Java Connectors installed remotely on a Java Connector Server function identically to those bundled locally within PingOne Advanced Identity Cloud or installed locally on IDM.

Refer to Remote connectors for configuring the AWS Bedrock remote connector.

Implementation specifics

Collection architecture

The AWS Bedrock connector uses a split collection model.

Live collection runs inside the Java connector during reconciliation, calling AWS Bedrock APIs to list agents, aliases, action groups, knowledge bases, collaborators, and guardrails.

Offline collection is handled by the companion bedrock-core-tools-inventory process. That process scans IAM and related AWS resources, writes normalized JSON artifacts to S3, and the connector reads those artifacts during reconciliation. This split keeps reconciliation fast and avoids giving the connector broad IAM enumeration permissions.

Live data

Data AWS API family

Agents

Bedrock Agent

Agent aliases

Bedrock Agent

Action groups

Bedrock Agent

Knowledge bases

Bedrock Agent

Collaborators / connected agents

Bedrock Agent

Guardrail details

Bedrock

S3 inventory data

Artifact S3 key Used for

Agent bindings

latest/agent-bindings.json

agentIdentityBinding, agentPrincipals, identityBindingIds

Tool credentials

latest/agent-tool-credentials.json

agentToolCredentials, toolCredentialIds

Both artifacts are cached in memory. The cache TTL is controlled by bindingsCacheTtlSeconds.

S3 inventory behavior

Behavior Description

Cache TTL

Controlled by bindingsCacheTtlSeconds.

Cache scope

Connector instance memory.

Identity binding cache

Used for agentIdentityBinding, agentPrincipals, and identityBindingIds.

Tool credential cache

Used for agentToolCredentials and toolCredentialIds.

Missing S3 key

Connector logs a warning and returns no S3-backed records. Live Bedrock objects still reconcile.

Read failure

Connector logs an error or warning and continues with empty S3-backed data.

Use the AWS Bedrock connector

The AWS Bedrock connector discovers the following resource types:

ICF Native Type AWS Bedrock Resource Type Naming Attribute Notes

__ACCOUNT__

Bedrock Agent Alias, or Bedrock Agent when the agent has no aliases

__NAME__

UID is agentId:aliasId for aliases, and agentId for bare agents.

agentTool

Bedrock Agent Action Group

__NAME__

Maps to action groups attached to an agent.

agentKnowledgeBase

Bedrock Agent Knowledge Base association

__NAME__

Represents a knowledge base attached to an agent, not the standalone Bedrock Knowledge Base object.

agentGuardrail

Bedrock Guardrail attached to an agent

__NAME__

Derived from the agent’s guardrailConfiguration, enriched with guardrail details.

agentIdentityBinding

Derived IAM-to-Bedrock invocation binding

__NAME__

Not a native Bedrock entity. Represents who can invoke an agent or alias, derived from IAM policies and read from the S3 inventory artifact.

agentToolCredentials

Derived action-group credential surface

__NAME__

Not a native Bedrock entity. Represents credential-related metadata for an action group. Read from the S3 inventory artifact.

__ACCOUNT__ attributes

Attribute Type Multivalued Description

platform

String

No

Connector platform identifier. Current value is awsbedrock.

agentId

String

No

Bedrock Agent ID.

agentName

String

No

Bedrock Agent name.

version

String

No

Agent version returned by Bedrock.

status

String

No

Agent status.

description

String

No

Agent description.

foundationModel

String

No

Foundation model configured for the agent.

roleArn

String

No

Agent resource role ARN.

idleSessionTtlSeconds

Integer

No

Idle session TTL in seconds.

createdAt

String

No

Agent creation timestamp.

updatedAt

String

No

Agent update timestamp.

preparedAt

String

No

Agent prepared timestamp.

agentArn

String

No

Agent ARN constructed from region, account ID, and agent ID.

region

String

No

AWS region configured on this connector instance.

customerEncryptionKeyArn

String

No

Customer KMS key ARN, if present.

failureReasons

String

Yes

Failure reason list from Bedrock.

recommendedActions

String

Yes

Recommended remediation actions from Bedrock.

guardrailId

String

No

Guardrail identifier from the agent guardrail configuration.

guardrailVersion

String

No

Guardrail version from the agent guardrail configuration.

tools

String

Yes

Action group IDs associated with the agent.

knowledgeBases

String

Yes

Knowledge base IDs associated with the agent.

agentCollaboration

String

No

Bedrock multi-agent collaboration mode.

connectedAgents

String

Yes

Collaborator alias ARNs returned by Bedrock.

aliasId

String

No

Alias ID. Present only on alias objects.

aliasName

String

No

Alias name. Present only on alias objects.

agentAliasStatus

String

No

Alias status. Present only on alias objects.

agentPrincipals

String

Yes

Computed principal references from S3 identity bindings.

identityBindingIds

String

Yes

Forward pointers to agentIdentityBinding records.

toolCredentialIds

String

Yes

Forward pointers to agentToolCredentials records.

agentTool attributes

Attribute Type Multivalued Description

platform

String

No

Connector platform identifier.

agentId

String

No

Parent agent ID.

agentVersion

String

No

Agent version used to list action groups.

actionGroupId

String

No

Action group ID.

actionGroupName

String

No

Action group name.

description

String

No

Action group description.

status

String

No

Action group state/status.

executorArn

String

No

Lambda executor ARN, when present.

parentActionGroupSignature

String

No

Bedrock system action group signature, when present.

schemaUri

String

No

S3 schema URI, when present.

agentKnowledgeBase attributes

Attribute Type Multivalued Description

platform

String

No

Connector platform identifier.

agentId

String

No

Parent agent ID.

agentVersion

String

No

Agent version used to list knowledge bases.

knowledgeBaseId

String

No

Knowledge base ID.

description

String

No

Knowledge base description.

status

String

No

Knowledge base association state/status.

updatedAt

String

No

Last update timestamp.

agentGuardrail attributes

Attribute Type Multivalued Description

platform

String

No

Connector platform identifier.

agentId

String

No

Parent agent ID.

agentVersion

String

No

Agent version.

guardrailId

String

No

Guardrail identifier.

guardrailVersion

String

No

Guardrail version.

guardrailName

String

No

Guardrail display name.

guardrailDescription

String

No

Guardrail description.

state

String

No

Guardrail state.

deploymentStatus

String

No

Guardrail deployment status.

inputAction

String

No

Input action / filter information serialized as a string.

outputAction

String

No

Output action / filter information serialized as a string.

agentIdentityBinding attributes

Attribute Type Multivalued Description

platform

String

No

Connector platform identifier.

agentId

String

No

Agent ID, or wildcard marker for wildcard bindings.

kind

String

No

Binding kind.

principal

String

No

Principal reference.

permissions

String

Yes

Permissions associated with the binding.

agentToolCredentials attributes

Attribute Type Multivalued Description

id

String

No

Tool credential record ID.

agentId

String

No

Parent agent ID.

agentArn

String

No

Agent ARN.

agentServiceRoleArn

String

No

Agent service role ARN.

actionGroupId

String

No

Action group ID.

actionGroupName

String

No

Action group name.

actionGroupState

String

No

Action group state.

credentialType

String

No

Credential classification.

credentialRef

String

No

Reference to the credential surface, such as a Lambda ARN or S3 URI. Doesn’t contain secret material.

apiSchemaSource

String

No

API schema source.

functionSchema

String

No

Whether the action group uses a function schema.

accountId

String

No

AWS account ID.

region

String

No

AWS region.

lambdaExecutionRoleArn

String

No

Lambda execution role ARN, when available.

Troubleshooting

Connector initializes but test fails

Check:

  1. region is valid for Bedrock Agents.

  2. accountId is populated.

  3. Explicit credentials are configured, or useDefaultCredentialsProvider=true and the connector runs on AWS infrastructure with an instance role, task role, or service account.

  4. The principal has Bedrock read permissions.

  5. The target account has Bedrock Agents in the configured region.

Agents reconcile but agentPrincipals is empty

Check:

  1. The companion inventory job has run successfully.

  2. latest/agent-bindings.json exists in the configured S3 bucket.

  3. The connector principal can call s3:GetObject on the inventory key.

  4. bindingsCacheTtlSeconds has expired, or the connector has been restarted after a fresh inventory run.

  5. IAM policies actually grant bedrock:InvokeAgent to the expected principals.

Agents reconcile but toolCredentialIds is empty

Check:

  1. latest/agent-tool-credentials.json exists in the configured S3 bucket.

  2. The inventory job has permissions to inspect action groups and related credential surfaces.

  3. The connector principal can read the S3 artifact.

  4. The action groups are present for the same region and account as the connector configuration.

OpenICF interfaces implemented by the AWS Bedrock connector

The AWS Bedrock connector implements the following OpenICF interfaces. You can find additional details in ICF interfaces:

Schema

Describes the object types, operations, and options that the connector supports.

Search

Searches the target resource for all objects that match the specified object class and filter.

Test

Tests the connector configuration.

Testing a configuration checks all elements of the environment that are referred to by the configuration are available. For example, the connector might make a physical connection to a host that is specified in the configuration to verify that it exists and that the credentials that are specified in the configuration are valid.

This operation might need to connect to a resource, and, as such, might take some time. Do not invoke this operation too often, such as before every provisioning operation. The test operation is not intended to check that the connector is alive (that is, that its physical connection to the resource has not timed out).

You can invoke the test operation before a connector configuration has been validated.

AWS Bedrock connector configuration

The AWS Bedrock connector has the following configurable properties:

Basic configuration properties

Property Type Default Encrypted(1) Required(2)

region

String

us-east-1

Yes

AWS region where Bedrock Agents are deployed, for example us-east-1 or us-west-2.

accountId

String

null

Yes

AWS account ID. Used to construct Bedrock Agent ARNs and relationship identifiers.

useDefaultCredentialsProvider

Boolean

true

Yes

If enabled, the connector uses the AWS SDK DefaultCredentialsProvider chain (environment variables, shared config, EC2/ECS role).

accessKeyId

String

null

No

AWS access key ID used to authenticate when the default credentials provider is disabled.

secretAccessKey

GuardedString

null

Yes

No

AWS secret access key used to authenticate when the default credentials provider is disabled.

inventoryBucket

String

bedrock-core-inventory

Yes

S3 bucket containing latest/agent-bindings.json and latest/agent-tool-credentials.json. Use the bucket name only, don’t include s3:// or a key prefix.

bindingsCacheTtlSeconds

Long

300

No

Cache TTL in seconds for S3 inventory artifacts.

(1) Whether the property value is considered confidential, and is therefore encrypted in IDM.

(2) A list of operations in this column indicates that the property is required for those operations.