

# Identity and access management for Web Search
<a name="security-web-search"></a>

Web Search on Amazon Bedrock uses AWS Identity and Access Management (IAM) to control who can run searches and fetches and in which Regions. This page describes the service's IAM prefix, actions, AWS managed policies, condition keys, example policies, and the controls administrators use to disable Web Search.

The IAM service prefix for Web Search is `bedrock-websearch`. Use this prefix when you write policy statements, for example `bedrock-websearch:InvokeSearch`.

## Actions
<a name="security-web-search-actions"></a>

Web Search supports three actions.


| **Action** | **Description** | **Access level** | 
| --- | --- | --- | 
| bedrock-websearch:InvokeSearch | Issue a search query. Returns URLs, titles, and snippets from the Amazon Bedrock web index. Does not make outbound calls. | Read / Write | 
| bedrock-websearch:InvokeFetch | Retrieve cached page content for a specific URL from the Amazon Bedrock cache. Does not make live outbound calls. | Read / Write | 
| bedrock-websearch:ExternalWebAccess | Governs whether search and fetch may access the external web in addition to the Amazon Bedrock web index and cache. Applies to both operations. | Read / Write | 

All three actions support the `*` resource type.

The model decides when to call search and when to call fetch based on its reasoning over each request and the responses to previous tool calls. Both tools are exposed to the model whenever `web_search` is added to a request; IAM permissions don't change what the model sees, and each permission is evaluated only when the model actually attempts that call. When a call is denied, the model continues with the information it already has and tells you if it couldn't retrieve enough current information to answer.

The two actions grant different capabilities. With `InvokeSearch` but not `InvokeFetch`, the model can run searches and ground its answer in the titles, URLs, and snippets that search returns, but cannot read the cached content of a page. With `InvokeFetch` but not `InvokeSearch`, the model cannot run searches to discover sources, but fetch still applies to any URL the model produces — one you provide in your request or one the model generates from its own knowledge — subject to that content being in the Amazon Bedrock cache. Fetch is not limited to URLs you supply, so if you intend to constrain the model to specific sources, restricting `InvokeSearch` alone does not achieve that.

## Managed policies
<a name="security-web-search-managed-policies"></a>

Web Search provides the following AWS managed policies.


| **Managed policy** | **Grants** | 
| --- | --- | 
| AmazonBedrockWebSearchFullAccess | Search and cached fetch actions only. No external web access with this policy. | 
| AmazonBedrockWebSearchReadOnly | Search and cached fetch actions in a read-only variant, with no external web access. Provided for parity with other AWS services and for policy automation that expects a ReadOnly policy per service. | 
| AmazonBedrockExternalWebSearchFullAccess | All Web Search actions, including ExternalWebAccess, with no condition-key restrictions. Intended for unrestricted use. | 
| AmazonBedrockExternalWebSearchReadOnly | All Web Search actions, including ExternalWebAccess, in a read-only variant. Provided for parity with other AWS services and for policy automation that expects a ReadOnly policy per service. | 

In addition to the web-search-specific policies above, the basic Web Search actions (`bedrock-websearch:InvokeSearch` and `bedrock-websearch:InvokeFetch`) have been added to the following AWS managed policies:
+ `AmazonBedrockFullAccess`
+ `AmazonMantleFullAccess`
+ `AmazonBedrockLimitedAccess`
+ `AmazonBedrockMantleInferenceAccess`

None of these general policies grant `bedrock-websearch:ExternalWebAccess`, so identities that hold them can use Search and cached Fetch without an additional policy change, while retrieval from the live web must be granted explicitly. `AmazonBedrockFullAccess` is distinct from `AmazonBedrockExternalWebSearchFullAccess`, which grants all Web Search actions including `ExternalWebAccess`; `AmazonBedrockWebSearchFullAccess`, by contrast, grants search and cached fetch only.

## Condition key
<a name="security-web-search-condition-keys"></a>

Web Search provides the following IAM condition key:


| **Condition key** | **Applies to** | **Description** | 
| --- | --- | --- | 
| aws:RequestedRegion | Both actions | Restrict Web Search to specific Regions. This is the standard AWS global condition key. | 

## Disable Web Search
<a name="security-web-search-disable"></a>

Administrators can turn off Web Search at several scopes.


| **Scope** | **Mechanism** | 
| --- | --- | 
| Organization | A Service Control Policy (SCP) that denies all bedrock-websearch actions across an AWS Organization. | 
| Account | A standard IAM deny on the bedrock-websearch actions. | 
| Region | A deny that uses the aws:RequestedRegion condition key. | 

The model decides when to call search and when to call fetch based on the content of each request. Before you restrict or disable either action, test your specific request patterns to understand which operations they trigger. That way you can confirm a policy change has the effect you intend and does not unexpectedly degrade responses.

## Example policies
<a name="security-web-search-example-policies"></a>

**Allow search and cached fetch in a specific Region**

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowWebSearchInRegion",
      "Effect": "Allow",
      "Action": [
        "bedrock-websearch:InvokeSearch",
        "bedrock-websearch:InvokeFetch"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "us-west-2"
        }
      }
    }
  ]
}
```

**Allow search, cached fetch, and external web access**

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowWebSearchWithExternalAccess",
      "Effect": "Allow",
      "Action": [
        "bedrock-websearch:InvokeSearch",
        "bedrock-websearch:InvokeFetch",
        "bedrock-websearch:ExternalWebAccess"
      ],
      "Resource": "*"
    }
  ]
}
```

**Allow cached fetch only**

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowCachedFetch",
      "Effect": "Allow",
      "Action": [
        "bedrock-websearch:InvokeFetch"
      ],
      "Resource": "*"
    }
  ]
}
```

**Deny Web Search across an organization (SCP)**

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllWebSearch",
      "Effect": "Deny",
      "Action": "bedrock-websearch:*",
      "Resource": "*"
    }
  ]
}
```