> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wherobots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# S3 Storage Integration

> Integrate Amazon S3 with Wherobots using a guided CloudFormation workflow, so you can use Wherobots as the spatial engine on data that stays in your own S3 buckets.

Wherobots' integration with Amazon Simple Storage Service (S3) lets you use Wherobots as the spatial engine that operates on your data while the data stays in your own Amazon S3 buckets.

Accelerate your creation of spatial data products by working with data directly from Amazon S3 public or private buckets, bypassing the need for time-consuming data transfers.

A guided workflow in Wherobots Cloud creates the integration for you: it generates pre-filled **AWS CloudFormation** templates that provision the AWS resources Wherobots needs, so you never have to hand-write IAM policies or trust relationships.

<CardGroup cols={3}>
  <Card title="How it works" icon="circle-info" href="#how-it-works">
    Cloud Connections and storage integrations
  </Card>

  <Card title="Prerequisites" icon="list-check" href="#before-you-start">
    What you need before starting
  </Card>

  <Card title="Create an integration" icon="link" href="#create-a-storage-integration">
    The step-by-step wizard
  </Card>
</CardGroup>

## Benefits

The S3 storage integration provides the following benefits:

<AccordionGroup cols={3}>
  <Accordion title="Ease of access to data" icon="hard-drive">
    Integrating your S3 buckets lets Wherobots Organization members work with data stored in Amazon S3 without manually transferring or duplicating it.
  </Accordion>

  <Accordion title="Guided, self-service setup" icon="gear">
    A wizard walks Admins through the integration and hands you pre-filled CloudFormation templates — no manual IAM policy editing required.
  </Accordion>

  <Accordion title="Reusable Cloud Connections" icon="link">
    A single Cloud Connection (the IAM role Wherobots assumes to reach your account) can back multiple storage integrations.
  </Accordion>

  <Accordion title="Secure authentication" icon="shield-halved">
    Wherobots accesses your account through cross-account IAM role assumption with attribute-based access control (ABAC) — no long-lived access keys are shared.
  </Accordion>

  <Accordion title="Control data access" icon="lock">
    Choose **Read** or **Read & Write** access per integration.
  </Accordion>

  <Accordion title="Supports Requester Pays buckets" icon="circle-info">
    Wherobots' S3 integration supports Amazon S3 Requester Pays buckets. For more information, see [Using Requester Pays buckets for storage transfers and usage](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html) in the Amazon S3 documentation.
  </Accordion>
</AccordionGroup>

## How it works

An S3 storage integration is built from two pieces, each provisioned by its own pre-filled CloudFormation stack in *your* AWS account:

<AccordionGroup>
  <Accordion title="Cloud Connection (the trust relationship)" icon="handshake" defaultOpen={true}>
    A **Cloud Connection** is the reusable IAM role Wherobots assumes to reach your AWS account — one connection can back multiple storage integrations and Glue catalogs. It's created by the connection stack.

    See [Cloud Connections](#cloud-connections) for the full definition and when to create one.
  </Accordion>

  <Accordion title="Storage integration (the bucket grant)" icon="aws">
    The **storage integration** grants a Cloud Connection access to a specific S3 bucket (or a prefix within it). A second CloudFormation stack attaches a policy to the connection role.

    A **Read & Write** grant includes the multipart-upload support required by Spark and Iceberg, which enables [Managed Catalogs](/develop/storage-management/s3-storage-integration#managed-catalog).
  </Accordion>
</AccordionGroup>

<Frame caption="Both CloudFormation stacks in the AWS console after a successful setup: the connection (trust relationship) stack and the storage (bucket grant) stack.">
  <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/cloudformation-stacks.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=c28b7a1e4ad7f368db168f93b80f12d5" alt="Two CloudFormation stacks — a Wherobots connection stack and a storage read-write stack — both showing CREATE_COMPLETE" width="1500" height="411" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/cloudformation-stacks.png" />
</Frame>

<Note>
  **Public buckets skip the Cloud Connection.** When you point the wizard at a publicly accessible bucket, Wherobots can read it without assuming a role, so the connection step is skipped. A Cloud Connection is required for both private bucket and requester pays buckets.
</Note>

## Cloud Connections

A **Cloud Connection** is a single, reusable trust relationship between your Wherobots Organization and a cloud provider account. For AWS, it's a first-class object that stores your AWS **account ID** and an IAM **role** (with an **external ID**) that Wherobots assumes on your behalf to access resources in your account.

<Note>
  Create **one** Cloud Connection per AWS account and reuse it across all of your **S3 storage integrations** and **AWS Glue catalogs** in that account, instead of configuring credentials separately for each one.
</Note>

**Trust is established with AWS CloudFormation.** Create the connection directly in the Wherobots UI, or download the CloudFormation template (YAML) so your security team can review it before deploying.

### Manage Cloud Connections

Cloud Connections live in [**Organization Settings**](https://cloud.wherobots.com/organization#cloud-connections) under **Cloud Connections**, where Admins can create, list, verify, and delete them.

* **Verify**: Confirms Wherobots can assume your IAM role through the two-hop AWS STS `AssumeRole` chain.
* **Delete**: Blocked while any storage integration or Glue catalog is still bound to the connection. You must remove any resources bound to that Cloud Connection prior to its deletion.

## Before you start

The following requirements must be met within both your Wherobots Organization and AWS account before creating an S3 storage integration:

<AccordionGroup cols={2}>
  <Accordion title="Wherobots Requirements" icon="cloud">
    * An **Admin** account within a **Professional**, **Innovation**, or **Enterprise** Edition Organization.
          <Note>
            Wherobots Organization members with the **User** role can use existing integrations set up by Admins but cannot create new ones. See [Organization Roles](/get-started/organization-info/organization-roles/).
          </Note>
  </Accordion>

  <Accordion title="AWS Requirements" icon="aws">
    * An AWS account.
    * Permission to **create CloudFormation stacks that provision IAM resources** in that account (typically `AdministratorAccess`). CloudFormation creates the IAM role and policies for you, so you don't edit them by hand.

          <Accordion title="What CloudFormation provisions" icon="shield-halved">
            The pre-filled templates create or modify IAM resources on your behalf. The actions they perform typically require `AdministratorAccess`:

            | IAM Action               | Description                                               |
            | ------------------------ | --------------------------------------------------------- |
            | `CreateRole`             | Creates the Cloud Connection IAM role                     |
            | `UpdateAssumeRolePolicy` | Sets the trust policy that lets Wherobots assume the role |
            | `PutRolePolicy`          | Attaches the inline policy granting bucket access         |
            | `AttachRolePolicy`       | Attaches a managed policy to the role                     |
            | `DeleteRolePolicy`       | Removes an inline policy (on stack update or delete)      |
            | `DetachRolePolicy`       | Detaches a managed policy (on stack update or delete)     |

            For a complete list of IAM Actions, see [Actions defined by AWS Identity and Access Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html#awsidentityandaccessmanagementiam-actions-as-permissions) in the AWS Documentation.
          </Accordion>
    * An existing public or private AWS S3 bucket.
  </Accordion>
</AccordionGroup>

## Bucket types

The following Amazon S3 bucket types can be integrated with Wherobots:

<AccordionGroup cols={3}>
  <Accordion title="Public Bucket">
    A public bucket on Amazon S3 is a bucket that has turned off Amazon S3's default **Block all public access** option. Public buckets can be read without a Cloud Connection.

    <Warning>
      Granting external write access to a public S3 bucket is strongly discouraged. Use a private bucket for Managed Catalogs.
    </Warning>
  </Accordion>

  <Accordion title="Private Bucket">
    A private bucket on Amazon S3 is a bucket that keeps the default **Block all public access** option enabled. Private buckets require a Cloud Connection. This is the recommended option for Managed Catalogs.
  </Accordion>

  <Accordion title="Requester Pays Bucket">
    In Amazon S3, a Requester Pays bucket shifts the responsibility for the cost of the request and the data download from the bucket owner to the person accessing the data.

    <Warning>
      **Additional fees apply**

      Accessing data from Requester Pays buckets will result in additional fees charged to you, not the bucket owner.
    </Warning>
  </Accordion>
</AccordionGroup>

For more information on Amazon S3 buckets, see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) in the Amazon S3 documentation.

## Create a storage integration

<Tabs>
  <Tab title="Hosted" icon="cloud">
    On the Wherobots Hosted platform, follow the wizard below as-is — the integration is available to Wherobots Cloud compute automatically.
  </Tab>

  <Tab title="Bring Your Own Cloud (BYOC)" icon="server">
    If your Organization uses [Bring Your Own Cloud (BYOC)](/develop/storage-management/byoc), the wizard shows an additional **Allowed compute** option while you create the integration. Use it to choose which compute environments — Wherobots Cloud and/or your BYOC region — may access the integration.

    <Frame caption="BYOC integration wizard with Allowed compute option">
      <img src="https://mintcdn.com/wherobots/NTXTqRUbFqpnUA0X/develop/storage-management/storage-management-images/add-storage-allowed-access-locations.png?fit=max&auto=format&n=NTXTqRUbFqpnUA0X&q=85&s=1ff976acb4766f9d61d03c8cfd37cbf1" alt="BYOC integration wizard with Allowed compute option" width="350" data-path="develop/storage-management/storage-management-images/add-storage-allowed-access-locations.png" />
    </Frame>

    To keep a bucket reachable **only** from your BYOC region, scope **Allowed compute** to that region and exclude the Wherobots Hosted platform by unchecking it. See [Data isolation & access boundaries](/develop/storage-management/byoc#data-isolation-and-access-boundaries).
  </Tab>
</Tabs>

<Info>
  This workflow switches between **Wherobots Cloud** and the **AWS Console**. Each time you launch a CloudFormation stack, Wherobots opens the AWS Console in a new tab with every parameter pre-filled — you only need to acknowledge and create the stack, then return to Wherobots.
</Info>

<Note>
  **S3 Path Restriction:** Bucket paths cannot contain periods. For example, `s3://my.bucket.name` is not allowed. Acceptable paths can consist of alphanumeric characters, underscores, equal signs, and dashes.
</Note>

<Steps>
  <Step title="Start the integration">
    1. Log in to [Wherobots Cloud](https://cloud.wherobots.com) and click [**Storage**](https://cloud.wherobots.com/storage) in the left sidebar.
    2. Click **Create Storage Integration**.

    You can also start this wizard from the **Storage Integration** card on the [**Data Hub**](https://cloud.wherobots.com/data-hub) empty state.

    <Frame caption="The Storage page, with the Create Storage Integration button in the top right.">
      <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/storage-create-integration.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=70cd4c291ad7499915a84a46aec32d44" alt="The Wherobots Cloud Storage page with the Create Storage Integration button highlighted" width="1291" height="80" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/storage-create-integration.png" />
    </Frame>
  </Step>

  <Step title="Enter the integration details">
    On the **Details** step, enter:

    * **Name** — a name for this integration (must include at least one letter).
    * **S3 Path** — your bucket path, optionally with a prefix, prefaced by `s3://` (for example, `s3://my-bucket` or `s3://my-bucket/optional/prefix`).

    Click **Check Bucket & Continue**. Wherobots checks whether the bucket is publicly accessible or requires a Cloud Connection.

    <Frame caption="Step 1, Details: name the integration and enter the S3 path.">
      <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/add-integration-details.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=c4df6a4762e525fff7bd66c5bd0ef1b2" alt="The Details step of the Add New Storage Integration wizard, with Name and S3 Path fields" width="1500" height="756" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/add-integration-details.png" />
    </Frame>

    <Note>
      If the bucket is public, the wizard skips the **Connection** step and takes you straight to **Deploy**.
    </Note>
  </Step>

  <Step title="Choose or create a Cloud Connection">
    For a private bucket, the **Connection** step asks you to pick an existing Cloud Connection or create a new one.

    <Note>
      Only Admins can create Cloud Connections. If you don't have permission, ask your Admin to create one for you.
    </Note>

    * **Reuse a connection:** Select an existing connection from the dropdown, then continue to the next step.
    * **Create a connection:** Select **Create new connection** and follow the steps below.

    <Accordion title="Create a new Cloud Connection" icon="key" defaultOpen={true}>
      Creating a connection takes two steps inside the **Create Cloud Connection** dialog.

      <Steps>
        <Step title="Enter the connection details">
          * **Connection Name** — a label that identifies the trust relationship in Wherobots.
          * **AWS Account ID** — the 12-digit AWS account you're connecting to.

          Click **Create Connection**.

          <Frame caption="Connection details: name the connection and enter your AWS Account ID.">
            <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/create-cloud-connection.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=1b2448ee60a8cb9ba39f79c42a5a9df7" alt="The Create Cloud Connection dialog" width="998" height="828" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/create-cloud-connection.png" />
          </Frame>
        </Step>

        <Step title="Grant access in AWS">
          Wherobots generates a pre-filled CloudFormation stack that creates the connection's IAM role. Click **Open in AWS Console** to launch it in a new tab, or **Download Template** to run it yourself.

          <Frame caption="Grant access in AWS: launch the pre-filled CloudFormation stack that creates the Cloud Connection role.">
            <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/create-cloud-connection-grant.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=e7d8a8e647de688cc4062ab6d191f1e8" alt="The Grant access in AWS step of the Create Cloud Connection dialog, with Open in AWS Console and Download Template buttons" width="1500" height="756" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/create-cloud-connection-grant.png" />
          </Frame>

          On the AWS **Quick create stack** page, everything is pre-filled. Scroll to the bottom, select **I acknowledge that AWS CloudFormation might create IAM resources**, and click **Create stack**.

          <Frame caption="On the AWS Quick create stack page, acknowledge the IAM capability and click Create stack.">
            <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/aws-quick-create-stack.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=9d5493ed4b25492989b50a0304419b09" alt="The Capabilities section of the AWS Quick create stack page with the IAM acknowledgment checkbox selected" width="1500" height="779" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/aws-quick-create-stack.png" />
          </Frame>

          Back in Wherobots, click **Done** to finish creating the connection.
        </Step>
      </Steps>
    </Accordion>
  </Step>

  <Step title="Choose an access level">
    With a connection selected, choose how much access Wherobots should have to this path:

    * **Read**: Wherobots can read objects from this path.
    * **Read & Write**: Wherobots can read and write objects, enabling [Managed Catalogs](/develop/storage-management/s3-storage-integration#managed-catalog).

    Click **Continue**.
  </Step>

  <Step title="Deploy the storage stack">
    On the **Deploy** step, launch the second CloudFormation stack — the storage grant stack. This grants the connection access to your bucket. The parameters are pre-filled.

    1. Click **Open in AWS Console** (or **Download Template**).
    2. On the AWS **Quick create stack** page, select **I acknowledge that AWS CloudFormation might create IAM resources**, and click **Create stack**.
    3. Return to Wherobots and click **Create integration**.

    <Frame caption="Step 3, Deploy: launch the pre-filled CloudFormation stack that grants the connection access to your bucket.">
      <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/add-integration-deploy.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=3014453fff887f95c31aa98bf2dac417" alt="The Deploy step of the wizard, with Open in AWS Console, Download Template, and Create integration buttons" width="1500" height="779" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/add-integration-deploy.png" />
    </Frame>
  </Step>

  <Step title="Verify access">
    On the **Done** step, Wherobots confirms the integration was created. After your CloudFormation stack finishes, click **Verify Access**.

    Wherobots checks read access — and, for a Read & Write integration, write access. When the checks pass, click **Done**.

    <Frame caption="A successful verification confirms read and (for Read & Write) write access.">
      <img src="https://mintcdn.com/wherobots/KVV5aPi0BttvEVfX/develop/storage-management/storage-management-images/s3-cloud-connection/add-integration-verify.png?fit=max&auto=format&n=KVV5aPi0BttvEVfX&q=85&s=6429f528b86dc697d593d4e7e460d9a4" alt="The Verify Storage Integration dialog showing successful read and write access checks" width="499" height="246" data-path="develop/storage-management/storage-management-images/s3-cloud-connection/add-integration-verify.png" />
    </Frame>

    <Note>
      IAM role policies can take a few minutes to propagate across AWS. If verification fails immediately after creating the stack, wait a moment and click **Retry**.
    </Note>
  </Step>
</Steps>

<Note>
  **A storage integration is not a catalog.** Creating a storage integration connects Wherobots to your S3 bucket, but it doesn't expose your data as a queryable catalog. To query the data, create a catalog from the bucket in the [**Data Hub**](https://cloud.wherobots.com/data-hub): click **Add Catalog**, then choose your storage under **Catalog in**. See [Create a Managed Catalog](/develop/storage-management/s3-storage-integration#managed-catalog).
</Note>

## Manage storage integrations

After creating S3 storage integrations, Admins can manage them from [**Organization Settings**](https://cloud.wherobots.com/organization).

<AccordionGroup cols={3}>
  <Accordion title="Verify Access" icon="circle-check">
    To re-verify an integration, go to
    [**Organization Settings** > **Storage**](https://cloud.wherobots.com/organization#storage), click **... (the ellipsis button) > Verify Access**.
  </Accordion>

  <Accordion title="View All" icon="eye">
    To view all storage integrations, see
    [**Organization Settings** > **Storage**](https://cloud.wherobots.com/organization#storage).
  </Accordion>

  <Accordion title="Delete" icon="trash">
    To delete an integration, go to
    [**Organization Settings** > **Storage**](https://cloud.wherobots.com/organization#storage), click **... (the ellipsis button) > Delete**.
  </Accordion>
</AccordionGroup>

### View a specific integration's contents

<Steps>
  <Step title="Open Storage">
    Log in to [Wherobots Cloud](https://cloud.wherobots.com/) and click [**Storage**](https://cloud.wherobots.com/storage) in the left sidebar.
  </Step>

  <Step title="Select your storage source">
    Click the storage source selector at the top of the page (shows **Managed** by default) and select your integrated bucket from the dropdown.
  </Step>

  <Step title="Browse your files">
    Navigate through the folder structure to view your bucket's contents.
  </Step>
</Steps>

## Access integrated storage in a notebook

After creating a [Managed Catalog](#managed-catalog) from your S3 storage integration, access your data using the catalog reference format:

```
CATALOG_NAME.DATABASE_NAME.TABLE_NAME
```

<Info>
  To use new storage integrations or catalogs in your notebooks, you must start a new runtime. Notebooks can only access integrations created before the runtime started.
</Info>

<Steps>
  <Step title="Start a notebook">
    Log in to [Wherobots Cloud](https://cloud.wherobots.com/) and start a Notebook with a Python Kernel. See [Notebook instance management](/develop/notebook-management/notebook-instance-management/) and [Jupyter Notebook Management](/develop/notebook-management/jupyter-notebook-management/) for details.
  </Step>

  <Step title="Load your data from the catalog">
    <CodeGroup>
      ```python sedona.table() wrap theme={"system"}
      # Replace `CATALOG_NAME`, `DATABASE_NAME`, and `TABLE_NAME` with your specific names.

      from sedona.spark import *

      config = SedonaContext.builder().getOrCreate()
      sedona = SedonaContext.create(config)

      # Access data using catalog.database.table format
      df = sedona.table("CATALOG_NAME.DATABASE_NAME.TABLE_NAME")
      df.printSchema()
      df.show()
      ```

      ```python sedona.sql() wrap theme={"system"}
      # Replace `CATALOG_NAME`, `DATABASE_NAME`, and `TABLE_NAME` with your specific names.
      from sedona.spark import *

      config = SedonaContext.builder().getOrCreate()
      sedona = SedonaContext.create(config)

      # Access data using catalog.database.table format
      df = sedona.sql("SELECT * FROM CATALOG_NAME.DATABASE_NAME.TABLE_NAME")
      df.show()
      ```
    </CodeGroup>
  </Step>
</Steps>

## Managed Catalog

A Managed Catalog can be created from a **Read & Write** private bucket storage integration at any time, allowing for multiple catalogs per integration.

<Warning>
  **Use private buckets for Managed Catalogs**

  Granting external write access to a public S3 bucket is strongly discouraged. Use a private S3 bucket for your Managed Catalog.
</Warning>

### What is a Managed Catalog?

A Managed Catalog is a metadata repository that is created, owned, and controlled directly within your Wherobots Organization.

When you connect a data source like an S3 bucket and register it as a managed catalog, Wherobots takes on the following responsibilities:

<AccordionGroup>
  <Accordion title="Source of Truth" icon="database">
    Wherobots becomes the authoritative source for all metadata, including schemas, table definitions, file locations, and partition information.
  </Accordion>

  <Accordion title="Data Discovery" icon="magnifying-glass">
    Wherobots actively scans the underlying storage (e.g., S3) to discover new data and automatically update the catalog.
  </Accordion>

  <Accordion title="Lifecycle Management" icon="arrows-rotate">
    Wherobots handles all metadata operations, such as creating, updating, and deleting tables. Changes in the underlying data are automatically synced to the catalog.
  </Accordion>

  <Accordion title="Optimization" icon="bolt">
    Because Wherobots has full control, it can build and manage advanced spatial indexes and perform other performance optimizations directly on the metadata.
  </Accordion>
</AccordionGroup>

You typically use a managed catalog when your raw spatial data files reside in an AWS S3 private
bucket and you want Wherobots to handle all aspects of data management, query optimization, and spatial ETL.

### Create a Managed Catalog from an S3 bucket

To create a Managed Catalog from an S3 bucket storage integration, complete the following steps:

<Steps>
  <Step title="Open Data Hub">
    Log in to [Wherobots Cloud](https://cloud.wherobots.com/) and click [**Data Hub**](https://cloud.wherobots.com/data-hub).
  </Step>

  <Step title="Add a new catalog">
    Click **Add Catalog**.
  </Step>

  <Step title="Configure the catalog">
    * **Name**: Alphanumeric characters, spaces, special characters, or underscores (must include at least one letter). No dashes or periods allowed.
    * **Path** (Optional): Enter the sub-folder where you'd like to store this Managed Catalog

    <Info>
      **Runtime Restart Required After Data Integration**

      To use new storage integrations or catalogs in your notebooks, you must start a new runtime.
      Notebooks can only access storage integrations or catalogs that were created before the runtime started.
    </Info>
  </Step>
</Steps>

## Limitations

The following limitations apply to S3 storage integrations:

<Accordion title="Current limitations" icon="circle-info" defaultOpen={true}>
  * Bucket paths cannot contain periods (e.g., `s3://my.bucket.name` is not allowed)
  * A bucket can only be configured with a single storage integration
  * Public buckets are read-only and cannot be used for Managed Catalogs due to the write access requirements
  * Creating an integration requires permission to deploy CloudFormation stacks that provision IAM resources in your AWS account
</Accordion>
