# RabbitMQ

RabbitMQ is a message broker used to facilitate asynchronous communication between services in distributed systems.

Through this integration, Apono helps you discover your RabbitMQ resources and securely manage access to them with just-in-time permissions.

***

### Prerequisite

<table><thead><tr><th width="221">Item</th><th>Description</th></tr></thead><tbody><tr><td><strong>RabbitMQ Admin Access</strong></td><td>User account with admin permissions to create a new user</td></tr></tbody></table>

***

### Create a dedicated Apono user

Follow these steps to create a dedicated user for Apono:

1. In the RabbitMQ Management portal, on the **Admin** tab, under **Add a user**, enter a **Username** such as *apono\_connector*.
2. Set a strong **Password**. Be sure to save this password to create a secret later.
3. For **Tags**, click **Admin** to assign administrative privileges to the user.
4. Click **Add user**.
5. Copy the URL of the page without the path for use during the integration.
6. Create a [secret](https://docs.apono.io/docs/connectors-and-secrets/apono-integration-secret) with the credentials from steps **1-2**.\
   \
   Use the following key-value pair structure when generating the secret. Be sure to replace `#PASSWORD` with the actual value. If you used a different name for the user, replace `apono_connector` with the name you assigned to the user.

```
"username": "apono_connector",
"password": "#PASSWORD"
```

You can now [integrate RabbitMQ](#integrate-rabbitmq).

***

### Integrate RabbitMQ

<figure><img src="https://1094436629-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fv6MBfUGvblSdAz31yJXm%2Fuploads%2Fgit-blob-74c5a87ee396f5462b3976b08299af90fa67fddb%2Frabbitmq.png?alt=media" alt="" width="563"><figcaption><p>RabbitMQ tile</p></figcaption></figure>

{% hint style="success" %}
You can also use the steps below to integrate with Apono using Terraform. In step **10**, instead of clicking **Confirm**, follow the **Are you integrating with Apono using Terraform?** guidance.
{% endhint %}

Follow these steps to complete the integration:

1. On the [**Catalog**](https://app.apono.io/catalog?search=rabbitmq) tab, click **RabbitMQ**. The **Connect Integration** page appears.
2. Under **Discovery**, click one or more resource types to sync with Apono.

{% hint style="info" %}
Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage Access Flows to these resources.
{% endhint %}

3. Click **Next**. The **Apono connector** section expands.
4. From the dropdown menu, select a connector.

{% hint style="info" %}
If the desired connector is not listed, click **+ Add new connector** and follow the instructions for creating a connector ([AWS](https://docs.apono.io/docs/aws-environment/apono-connector-for-aws), [Azure](https://docs.apono.io/docs/azure-environment/apono-connector-for-azure), [GCP](https://docs.apono.io/docs/gcp-environment/apono-connector-for-gcp), [Kubernetes](https://docs.apono.io/docs/kubernetes-environment/apono-connector-for-kubernetes)).
{% endhint %}

5. Click **Next**. The **Integration Config** section expands.
6. Define the **Integration Config** settings.

   <table><thead><tr><th width="188">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Integration Name</strong></td><td>Unique, alphanumeric, user-friendly name used to identify the integration when constructing an access flow</td></tr><tr><td><strong>Url</strong></td><td><p>URL for the RabbitMQ Management Console, excluding the path<br><br>You may optionally include the protocol (<code>https://</code> or <code>http://</code>).</p><p><br><strong>Example</strong>: <em>https://b-1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p.mq.us-east-1.amazonaws.com</em></p></td></tr></tbody></table>
7. Click **Next**. The **Secret Store** section expands.
8. [Associate the secret or credentials](https://docs.apono.io/docs/connectors-and-secrets/apono-integration-secret).
9. Click **Next**. The **Get more with Apono** section expands.
10. Define the **Get more with Apono** settings.

    <table><thead><tr><th width="186">Setting</th><th>Description</th></tr></thead><tbody><tr><td><strong>Custom Access Details</strong></td><td>(Optional) Instructions explaining how to access this integration's resources<br><br>Upon accessing an integration, a message with these instructions will be displayed to end users in the User Portal. The message may include up to <strong>400 characters</strong>.<br><br>To view the message as it appears to end users, click <strong>Preview</strong>.</td></tr><tr><td><strong>Integration Owner</strong></td><td><p>(Optional) Fallback approver if no <a href="../../access-flows/dynamic-access-management/resource-and-integration-owners">resource owner</a> is found<br><br>Follow these steps to define one or several integration owners:</p><ol><li>From the <strong>Attribute</strong> dropdown menu, select <strong>User</strong> or <strong>Group</strong> under the relevant identity provider (IdP) platform.</li><li>From the <strong>Value</strong> dropdown menu, select one or multiple users or groups.</li></ol><p><br><strong>NOTE</strong>: When <strong>Resource Owner</strong> is defined, an <strong>Integration Owner</strong> must be defined.</p></td></tr><tr><td><strong>Resource Owner</strong></td><td><p>(Optional) Group or role responsible for managing access approvals or rejections for the resource<br><br>Follow these steps to define one or several <a href="../../access-flows/dynamic-access-management/resource-and-integration-owners">resource owners</a>:</p><ol><li>Enter a <strong>Key name</strong>. This value is the name of the tag created in your cloud environment.</li><li>From the <strong>Attribute</strong> dropdown menu, select an attribute under the IdP platform to which the key name is associated.<br><br>Apono will use the value associated with the key (tag) to identify the resource owner. When you update the membership of the group or role in your IdP platform, this change is also reflected in Apono.</li></ol><p><br><strong>NOTE</strong>: When this setting is defined, an <strong>Integration Owner</strong> must also be defined.</p></td></tr></tbody></table>
11. Click **Confirm**.

<details>

<summary>💡Are you integrating with Apono using Terraform?</summary>

If you want to integrate with Apono using Terraform, follow these steps instead of clicking **Confirm**:

1. At the top of the screen, click **View as Code**. A modal appears with the completed Terraform configuration code.
2. Click to copy the code.
3. Make any additional edits.
4. Deploy the code in your Terraform.

Refer to [Integration Config Metadata](https://docs.apono.io/metadata-for-integration-config/integration-metadata/rabbitmq) for more details about the schema definition.

</details>

Now that you have completed this integration, you can [create access flows](https://docs.apono.io/docs/access-flows/access-flows) that grant permission to your RabbitMQ instance.


---

# Agent Instructions: 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:

```
GET https://docs.apono.io/docs/additional-integrations/databases-and-data-repositories/rabbitmq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
