> For the complete documentation index, see [llms.txt](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/features/ai-agent-security/configuration.md).

# Configuration

Grant the required permissions to your cloud integrations to enable AI Agent Security discovery.

AI Agent Security builds on Veza's existing cloud integrations. To discover AI resources, connect Veza to your cloud platform using the integration guide for that platform, then grant the additional permissions described below.

## Requirements

* **AI Agent Security feature flag** — Contact Veza support to activate AI Agent Security for your tenant.
* **Cloud integration** — At least one supported platform must be connected to Veza. See [Configuring Integrations](/4yItIzMvkpAvMVFAamTf/integrations/configuration.md) for platform setup guides.

## AWS Bedrock

Follow the [AWS Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/aws.md) to connect Veza to your AWS environment, then add the following Bedrock-specific permissions to your Veza IAM role:

```json
{
  "Effect": "Allow",
  "Action": [
    "bedrock:GetAgent",
    "bedrock:GetGuardrail",
    "bedrock:ListAgentActionGroups",
    "bedrock:ListAgentAliases",
    "bedrock:ListAgentKnowledgeBases",
    "bedrock:ListAgents",
    "bedrock:ListAgentVersions",
    "bedrock:ListCustomModels",
    "bedrock:ListDataSources",
    "bedrock:ListFoundationModels",
    "bedrock:ListGuardrails",
    "bedrock:ListImportedModels",
    "bedrock:ListKnowledgeBases",
    "bedrock:ListPromptRouters",
    "bedrock:ListPrompts"
  ],
  "Resource": "*"
}
```

Bedrock discovery scans all enabled regions by default. To limit discovery to specific regions, edit the integration and enter region names in the **Regions** field (e.g., `us-east-1, us-west-2`). Bedrock services are regional. Ensure agents exist in the regions you configure.

## AWS Bedrock AgentCore

Bedrock AgentCore is a separate AWS service from Bedrock (classic), with its own IAM service prefix (`bedrock-agentcore`). It is configured as a sub-service of the existing AWS integration in Veza.

Follow the [AWS Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/aws.md) to connect Veza to your AWS environment, then:

1. In the AWS integration settings, go to **Limit Services** and enable **Bedrock AgentCore**.
2. Add the following permissions to your Veza IAM role:

```json
{
  "Sid": "BedrockAgentCore",
  "Effect": "Allow",
  "Action": [
    "bedrock-agentcore:ListAgentRuntimes",
    "bedrock-agentcore:GetAgentRuntime",
    "bedrock-agentcore:ListAgentRuntimeEndpoints",
    "bedrock-agentcore:ListGateways",
    "bedrock-agentcore:GetGateway",
    "bedrock-agentcore:ListGatewayTargets",
    "bedrock-agentcore:GetGatewayTarget",
    "bedrock-agentcore:ListMemories",
    "bedrock-agentcore:GetMemory",
    "bedrock-agentcore:ListOnlineEvaluationConfigs",
    "bedrock-agentcore:GetOnlineEvaluationConfig",
    "bedrock-agentcore:ListCodeInterpreters",
    "bedrock-agentcore:GetCodeInterpreter",
    "bedrock-agentcore:ListBrowsers",
    "bedrock-agentcore:GetBrowser"
  ],
  "Resource": "*"
}
```

AgentCore discovery is regional. Ensure your AWS integration includes the regions where your AgentCore runtimes are deployed. IAM must also be enabled in the same AWS integration for Veza to resolve agent runtime permissions through assumed IAM roles.

## Azure AD (Entra ID)

No additional configuration is required. Veza automatically classifies qualifying entities as AI Agents using platform-native fields during regular integration sync:

* **Azure AD** — `AzureADEnterpriseApplication` entities are classified as AI Agents when their application tags include `AgenticInstance`, `AgenticApp`, or any tag prefixed with `power-virtual-agents-`.

No changes to your existing Azure AD integration are needed.

## Azure AI Foundry

Follow the [Microsoft Azure Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/azure.md) to connect Veza to your Azure environment, then follow the steps in [Enable Azure AI Foundry](/4yItIzMvkpAvMVFAamTf/integrations/integrations/azure.md#enable-azure-ai-foundry) to grant the required control plane and data plane roles and enable the service in **Limit Services**.

## Google Cloud Vertex AI

Follow the [Google Cloud Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/google.md) to connect Veza to your Google Cloud project, then grant the following additional permissions to your Veza service account:

```
aiplatform.locations.list
aiplatform.reasoningEngines.list
aiplatform.reasoningEngines.get
aiplatform.endpoints.list
aiplatform.endpoints.getIamPolicy
aiplatform.models.list
```

You can grant these by creating a custom IAM role or assigning the predefined `roles/aiplatform.viewer` role.

Vertex AI resources are location-specific. Edit the integration and use the **Location allow list** to specify the locations where your Vertex AI resources are deployed (e.g., `us-central1, us-east1`).

{% hint style="info" %}
Use the **Limit Google Cloud Services** option in the integration settings to explicitly enable Vertex AI discovery. Extractions that encounter Vertex AI resources without the required permissions can impact the extraction pipeline.
{% endhint %}

## Microsoft Copilot Studio

Follow the [Microsoft Azure Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/azure.md) to connect Veza to your Azure environment, then complete the following steps:

1. **Grant Microsoft Graph permissions**: In **Azure Portal**, go to **Azure Active Directory** → **App registrations**, select your Veza service principal, click **API permissions** → **Add a permission** → **Microsoft Graph** → **Application permissions**, and add:
   * `User.Read.All`
   * `Group.Read.All`
   * `Application.Read.All`
   * `ServicePrincipalEndpoint.Read.All`
2. **Grant Dataverse permission**: Click **Add a permission** → **Dynamics CRM**, select **Delegated permissions**, add `user_impersonation`, and click **Grant admin consent**.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>"Dynamics CRM" is Microsoft's label for the Dataverse Web API</strong> in the Entra permission picker. This name is set by Microsoft and was never updated after the Dataverse rebrand. You do not need a Dynamics 365 license or a CRM deployment to use this integration with Copilot Studio.</p></div>
3. **Register as Application User and assign Service Reader**: In each Power Platform Dataverse environment, register the Veza service principal as an Application User and assign the predefined, read-only Service Reader role. This grants the required organization-wide read access for `bot` and supporting identity tables.
4. **Add Dataverse environment URLs**: Go to **Integrations**, select your Microsoft Azure integration, click **Edit Settings**, and enter your Dataverse environment URL(s) in the **Dynamics 365 CRM Environments** field (e.g., `https://org.crm.dynamics.com`).

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The <code>*.crm.dynamics.com</code> domain is the standard Dataverse environment hostname. Microsoft retained this domain for all Dataverse environments, including those used exclusively for Copilot Studio with no CRM deployment.</p></div>
5. **Enable the services**: In the Azure integration settings, go to **Limit Services** and enable both **Microsoft Copilot Studio** and **Azure Dynamics 365 CRM**.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Copilot Studio discovery uses the same Dataverse environment URLs configured under <strong>Azure Dynamics 365 CRM</strong> (step 4). Both services must be enabled for discovery to run. <strong>Azure Dynamics 365 ERP</strong> is a separate integration and is not required.</p></div>

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>If the Azure integration is set to <strong>All services</strong>, Microsoft Copilot Studio is included automatically. If it is set to <strong>Limited services</strong>, you must explicitly check <strong>Microsoft Copilot Studio</strong> and <strong>Azure Dynamics 365 CRM</strong> in the <strong>Select Services</strong> picker — otherwise discovery silently skips Copilot Studio resources.</p></div>

## Microsoft 365 Copilot Agent Builder

Follow the [Microsoft Azure Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/azure.md) to connect Veza to your Azure environment, then complete the following steps:

1. **Confirm the tenant is licensed**: Microsoft Agent 365 must be active on the tenant. The Agent 365 Package Management API that Veza reads is gated on this SKU. Without it, no agents are discovered.
2. **Grant the Microsoft Graph delegated permission**: In the **Microsoft Entra admin center**, go to **Entra ID** → **App registrations**, select your Veza app registration, click **API permissions** → **Add a permission** → **Microsoft Graph** → **Delegated permissions**, and add `CopilotPackages.Read.All`.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>This must be a <strong>delegated</strong> permission, not an application permission. Microsoft's Package Management API rejects app-only tokens by design, so this is the one Azure service that does not authenticate as the app registration itself. Instead, it acts on behalf of a signed-in administrator. <code>CopilotPackages.Read.All</code> is a user-consentable scope: the administrator consents to it during the <strong>Authorize</strong> sign-in in step 4, so no separate admin-consent step is required. Veza requests only the read scope.</p></div>
3. **Add the Veza redirect URI**: In the same app registration, click **Authentication** → **Add a platform** → **Web**, and add `https://oauth2-redirect.on.vezacloud.com`. This is Veza's shared OAuth redirect service. If your Veza tenant is not on `vezacloud.com`, contact Veza support for the correct URI.
4. **Enable the service and authorize**: In the Azure integration settings, go to **Limit Services** and enable **Microsoft 365 Copilot Agent Builder**. In the **Microsoft 365 Copilot Agent Builder** section of the form, click **Authorize** and sign in with an account holding the **AI Administrator** or **Global Administrator** directory role.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>No credential is pasted into Veza. The authorization code returned by Microsoft is exchanged for a refresh token by Veza's data plane, and that token is stored write-only and encrypted. It is not displayed, exported, or readable through the API. Use a dedicated, non-personal administrator account so discovery does not break when an individual leaves the organization. You do not need to re-authorize on a schedule, only if the token is revoked, the account is disabled or loses its role, or the app registration's credential is removed.</p></div>

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>If the Azure integration is set to <strong>All services</strong>, Microsoft 365 Copilot Agent Builder is included automatically. If it is set to <strong>Limited services</strong>, you must explicitly check it in the <strong>Select Services</strong> picker. Otherwise, discovery silently skips declarative agents.</p></div>
5. **(Optional) Enable knowledge-source linking**: Enable **SharePoint**, **Microsoft Teams**, and **Exchange Online** on the same Azure integration so Veza can connect each agent to the sites, channels, and mailboxes its manifest grounds it in.

## Salesforce (Agentforce)

Follow the [Salesforce Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/salesforce.md) to connect Veza to your Salesforce org, then grant read access to the `BotDefinition` object:

1. In Salesforce **Setup**, go to **Profiles** or **Permission Sets**.
2. Select the profile or permission set assigned to your Veza integration user.
3. Under **Object Settings**, find **BotDefinition** and enable **Read**.
4. Click **Save**.

{% hint style="info" %}
The `BotDefinition` object is only visible if your org has an Agentforce license.
{% endhint %}

## ServiceNow

Follow the [ServiceNow Integration Setup Guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/servicenow.md) to connect Veza to your ServiceNow instance. AI Agent discovery requires the following ServiceNow plugins:

* **AI Agent Studio** (`sn_aia`) — Required for AI Agent and AI Agent Tool discovery
* **Now Assist Skill Kit** — Required for Gen AI Skill discovery
* **Generative AI Controller** — Required for AI Model and Gen AI Config discovery

Grant the Veza integration user the `sn_aia.admin` role for access to AI Agent Studio tables. If a required plugin is not installed, Veza skips the corresponding AI entity types and continues the extraction normally.

See the [ServiceNow integration guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/servicenow.md) for the full list of required table permissions.

## Anthropic (Claude Admin Platform)

Follow the [Anthropic Claude Admin Platform integration guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/anthropic.md) to connect Veza to your Anthropic organization. Anthropic does not use the **Limit Services** model; agent discovery is enabled through the integration's data sources:

1. Enter the organization **Admin API Key** (starts with `sk-ant-admin...`) when you create the integration. This discovers the organization, workspaces, users, and API keys.
2. For each workspace whose managed agents you want to discover, supply a workspace-scoped API key (starts with `sk-ant-api...`) as a data-source-level secret reference. Veza creates one Managed Agents data source per workspace, each awaiting its workspace key.

Both the Admin Platform and Managed Agents data sources must be active for workspace access relationships to appear. See [Workspace-level entity discovery (Managed Agents)](/4yItIzMvkpAvMVFAamTf/integrations/integrations/anthropic.md#workspace-level-entity-discovery-managed-agents) for details.

## LiteLLM

Follow the [LiteLLM AI Gateway integration guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/litellm.md) to connect Veza to your gateway. LiteLLM does not use the **Limit Services** model, and AI discovery needs no permissions beyond the gateway master key the integration already uses:

1. Supply the gateway **Base URL** and its **Master Key** (`LITELLM_MASTER_KEY`) when you create the integration. The master key is an admin credential for the management API, which is what agent, model, and MCP server discovery reads.
2. Confirm your gateway serves the `/v1/agents` and `/v1/mcp/server` management endpoints. Older builds and editions that omit them still yield the organization, team, user, key, and model graph, without agents or MCP servers.

See [Limitations](/4yItIzMvkpAvMVFAamTf/integrations/integrations/litellm.md#limitations) for what a given gateway version exposes.

## Workday

Follow the [Workday integration guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/workday.md) to connect Veza to your Workday tenant, then enable AI agent discovery:

1. In the Workday integration's **Datasource Selection**, enable the **Agent** datasource (AI Agents from Workday's Agent System of Record). When no data sources are selected, all are enabled by default.
2. Grant the Veza security group the additional Agent System of Record (ASOR) domain security policy permissions (Get Only on **Setup: Agents**, **Reports: Agent Reporting**, **Agent Compliance**, and **Agent Management Hub**), and enable the **Agent System of Record** functional area in your tenant.

Workday agent discovery is available in Veza v2026.6.1 and later. See the [Workday integration guide](/4yItIzMvkpAvMVFAamTf/integrations/integrations/workday.md#agent-system-of-record-asor-permissions) for the full permission list.

## Verify Discovery

After the next scheduled integration sync, or after triggering a manual extraction:

1. Go to **AI Agent Security > Overview** and confirm the agent count is greater than 0.
2. Navigate to **AI Agent Security > Agents**, filter by platform, and verify agents appear with correct properties.
3. Select an agent, click the linked models count, and confirm the graph shows model relationships.

## Next Steps

* [Supported Entities](/4yItIzMvkpAvMVFAamTf/features/ai-agent-security/supported-entities.md) — Entity types discovered per platform
* [AI Agent Security Overview](/4yItIzMvkpAvMVFAamTf/features/ai-agent-security.md) — GUI walkthrough and key capabilities
* [Access Reviews](/4yItIzMvkpAvMVFAamTf/features/access-reviews.md) — Create recurring reviews for AI Agent permissions
* [Rules and Alerts](/4yItIzMvkpAvMVFAamTf/features/insights/rules-and-alerts.md) — Configure automated alerts for AI security events


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/features/ai-agent-security/configuration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
