Back to Infisical

Datadog Connection

docs/integrations/app-connections/datadog.mdx

0.162.1114.2 KB
Original Source

Infisical supports two methods for authenticating with Datadog:

  • Service Access Token (recommended): a Datadog Service Access Token issued on a Service Account and sent as a bearer token (Authorization: Bearer <token>).
  • Application Keys: a Datadog API Key paired with a Service Account Application Key.
<Note> We recommend the **Service Access Token** method. Tokens are scoped, can be given an expiration, and are bound to a dedicated Service Account, so the credentials Infisical uses can be rotated and revoked independently of any individual user. The **Application Keys** method remains available for existing setups. </Note>

Create Datadog Credentials

<Tabs> <Tab title="Service Access Token (Recommended)"> <Steps> <Step title="Open Organization Settings"> From your Datadog dashboard, hover the bottom left where it says **Integrations**. This will open a window with **Organization Settings**
            ![Open Organization Settings](/images/app-connections/datadog/open-settings.png)
        </Step>
        <Step title="Navigate to Service Accounts">
            In **Organization Settings**, open the **Service Accounts** section from the left sidebar.

            ![Service Accounts Option](/images/app-connections/datadog/service-account-option.png)
        </Step>
        <Step title="Create a New Service Account">
            On the **Service Accounts** page, click **New Service Account**.

            ![Service Accounts Page](/images/app-connections/datadog/service-account-page.png)
        </Step>
        <Step title="Create the Service Account">
            Provide a name, email, and select a role for the Service Account, then click **Create Service Account**.

            <Note>
                The Service Account's role determines which resources Infisical can access. Make sure it has access to the resources you want Infisical to manage. For secret rotation, it is required to have the `Datadog Admin Role` as a base so the token can be scoped.
            </Note>

            ![Create Service Account](/images/app-connections/datadog/create-service-account.png)
        </Step>
        <Step title="Open the New Service Account">
            Once created, click the Service Account in the list to open its details, where you can manage its **Access Tokens**.

            ![Service Account Created](/images/app-connections/datadog/service-account-created.png)
        </Step>
        <Step title="Create an Access Token">
            In the Service Account's details panel, find the **Access Tokens** section and click **+ New Token**.

            ![Create Access Token](/images/app-connections/datadog/create-access-token.png)
        </Step>
        <Step title="Name the Access Token">
            Enter a descriptive **Name** for the token (e.g. `infisical-connection`) and choose an **Expiration Date** (`1 day`, `1 month`, `1 year`, `Never`, or `Custom`).

            ![Access Token Name](/images/app-connections/datadog/access-token-name.png)
        </Step>
        <Step title="Configure Access Token Scopes">
            Click **Select Scopes** to define what the token can access. Grant only the permissions your workflow requires, then click **Save**.

            <Tabs>
                <Tab title="Application Key Rotation">
                    For [Datadog Application Key Secret Rotation](/documentation/platform/secret-rotation/datadog-application-key-secret), the token needs scopes to read users and manage Service Account Application Keys. Set `user_app_keys` under **API and Application Keys** and `service_account_write`, `user_access_manage`, and `user_access_read` under **Access Management**.
                    ![Application Key button](/images/app-connections/datadog/access-token-scopes.png)
                </Tab>
                <Tab title="API Key Rotation">
                    For [Datadog API Key Secret Rotation](/documentation/platform/secret-rotation/datadog-api-key), the token needs scopes to delete and read API Keys. Set `api_keys_delete` and `api_keys_write` under **API and Application Keys**.

                    ![API key rotation](/images/app-connections/datadog/api-key-rotation-permissions.png)
                </Tab>
            </Tabs>


        </Step>
        <Step title="Copy the Access Token Value">
            Datadog displays the token secret **only once** at creation time. Copy the **token value** and store it somewhere safe. You will need it when creating the Infisical connection.

            ![Copy Access Token](/images/app-connections/datadog/copy-access-token.png)
        </Step>
    </Steps>
</Tab>
<Tab title="Application Keys">
    <Steps>
        <Step title="Open Organization Settings">
            From your Datadog dashboard, hover the bottom left where it says  **Integrations**. This will open a window with **Organization Settings**

            ![Open Organization Settings](/images/app-connections/datadog/open-settings.png)
        </Step>
        <Step title="Navigate to API Keys">
            In the left sidebar, select **API Keys**.

            ![API Keys Option](/images/app-connections/datadog/api-key-option.png)
        </Step>
        <Step title="Create a New API Key">
            Click the **New Key** button in the top-right corner.

            ![New API Key Button](/images/app-connections/datadog/new-key-button.png)
        </Step>
        <Step title="Name the API Key">
            Provide a descriptive name for the API Key (e.g. `infisical-connection`) and click **Create Key**.

            ![Name API Key](/images/app-connections/datadog/api-key-name-modal.png)
        </Step>
        <Step title="Copy the API Key Value">
            Copy the generated **API Key** value and store it somewhere safe. You will need it when creating the Infisical connection.

            ![Copy API Key](/images/app-connections/datadog/api-key-copy-value.png)
        </Step>
        <Step title="Navigate to Service Accounts">
            Back in **Organization Settings**, open the **Service Accounts** section from the left sidebar.

            ![Service Accounts Option](/images/app-connections/datadog/service-account-option.png)
        </Step>
        <Step title="View Service Accounts">
            On the **Service Accounts** page, click **New Service Account**.

            ![Service Accounts Page](/images/app-connections/datadog/service-account-page.png)
        </Step>
        <Step title="Create the Service Account">
            Provide a name, email, and select a role for the Service Account, then click **Create Service Account**.

            <Note>
                The Service Account's role determines which resources Infisical can access. Make sure it has access to the resources you want Infisical to manage. For secret rotation, it is required to have the `Datadog Admin Role` as a base so the **Application Key can be scoped** 
            </Note>

            ![Create Service Account](/images/app-connections/datadog/create-service-account.png)
        </Step>
        <Step title="Open the New Service Account">
            Once created, click on created the Service Account from the list to manage its Application Keys.

            ![Service Account Created](/images/app-connections/datadog/service-account-created.png)
        </Step>
        <Step title="Create an Application Key">
            Under the **Application Keys** section of the Service Account, click **New Key**.

            ![Create Application Key](/images/app-connections/datadog/create-new-key.png)
        </Step>

        <Step title="Define a name for the Application Key ">
            Define a name for the application key

            ![Application Key Name](/images/app-connections/datadog/application-key-name.png)
        </Step>

        <Step title="Configure Application Key Scopes">
            Assign the scopes required for your use case. On **Scope** click on **Edit**, so you can define the scopes you want. If this is left empty, the scope of this key will be the same as the service account.
            
            <Tabs>
                <Tab title="Application Key Rotation">
                    For [Datadog Application Key Secret Rotation](/documentation/platform/secret-rotation/datadog-application-key-secret), the token needs scopes to read users and manage Service Account Application Keys. Set `user_app_keys` under **API and Application Keys** and `service_account_write`, `user_access_manage`, and `user_access_read` under **Access Management**.
                    ![Application Key button](/images/app-connections/datadog/access-token-scopes.png)
                </Tab>
                <Tab title="API Key Rotation">
                    For [Datadog API Key Secret Rotation](/documentation/platform/secret-rotation/datadog-api-key), the token needs scopes to delete and read API Keys. Set `api_keys_delete` and `api_keys_write` under **API and Application Keys**.

                    ![API key rotation](/images/app-connections/datadog/api-key-rotation-permissions.png)
                </Tab>
            </Tabs>


        </Step>
        <Step title="Copy the Application Key Value">
            Copy the **Application Key** value and store it somewhere safe. You will need it when creating the Infisical connection.

            ![Application Key Scopes](/images/app-connections/datadog/copy-service-account-key.png)

        </Step>
    </Steps>
</Tab>
</Tabs>

Create Datadog Connection in Infisical

<Tabs> <Tab title="Infisical UI"> <Steps> <Step title="Navigate to App Connections"> In your Infisical dashboard, navigate to the **Integrations** tab in the desired project, then select **App Connections**.
            ![App Connections Tab](/images/app-connections/general/add-connection.png)
        </Step>
        <Step title="Select Datadog Connection">
            Click the ** Add Connection** button and select **Datadog** from the list of available connections.

            ![Datadog Connection form](/images/app-connections/datadog/datadog-add-connection.png)
        </Step>
        <Step title="Fill out the Datadog Connection Modal">
            Complete the Datadog Connection form by entering:
            - A descriptive name for the connection
            - An optional description for future reference
            - The **Method** you want to use to authenticate (**Service Access Token**, recommended, or **Application Keys**)
            - The Datadog **URL** for your region (e.g. `https://api.datadoghq.com`, `https://api.us5.datadoghq.com`, or `https://api.ddog-gov.com`)
            - If using **Service Access Token**: the Datadog **Service Access Token**
            - If using **Application Keys**: the **API Key** and the Service Account **Application Key** from the earlier steps

            ![Datadog Connection form](/images/app-connections/datadog/datadog-form.png)
        </Step>
        <Step title="Connection Created">
            After clicking Create, your **Datadog Connection** is established and ready to use with your Infisical project.

            ![Datadog Connection form](/images/app-connections/datadog/datadog-app-connection.png)
        </Step>
    </Steps>
</Tab>
<Tab title="API">
    To create a Datadog Connection, make an API request to the [Create Datadog Connection](/api-reference/endpoints/app-connections/datadog/create) API endpoint.

    ### Sample request

    <CodeGroup>
    ```bash Service Access Token (Recommended)
    curl    --request POST \
            --url https://app.infisical.com/api/v1/app-connections/datadog \
            --header 'Content-Type: application/json' \
            --data '{
                "name": "my-datadog-connection",
                "method": "token",
                "projectId": "7ffbb072-2575-495a-b5b0-127f88caef78",
                "credentials": {
                    "url": "https://api.datadoghq.com",
                    "token": "<YOUR-SERVICE-ACCESS-TOKEN>"
                }
            }'
    ```

    ```bash Application Keys
    curl    --request POST \
            --url https://app.infisical.com/api/v1/app-connections/datadog \
            --header 'Content-Type: application/json' \
            --data '{
                "name": "my-datadog-connection",
                "method": "api-key",
                "projectId": "7ffbb072-2575-495a-b5b0-127f88caef78",
                "credentials": {
                    "url": "https://api.datadoghq.com",
                    "apiKey": "<YOUR-API-KEY>",
                    "applicationKey": "<YOUR-APPLICATION-KEY>"
                }
            }'
    ```
    </CodeGroup>

    ### Sample response

    ```bash Response
    {
      "appConnection": {
          "id": "e5d18aca-86f7-4026-a95e-efb8aeb0d8e6",
          "name": "my-datadog-connection",
          "projectId": "7ffbb072-2575-495a-b5b0-127f88caef78",
          "description": null,
          "version": 1,
          "orgId": "6f03caa1-a5de-43ce-b127-95a145d3464c",
          "createdAt": "2025-04-23T19:46:34.831Z",
          "updatedAt": "2025-04-23T19:46:34.831Z",
          "isPlatformManagedCredentials": false,
          "credentialsHash": "7c2d371dec195f82a6a0d5b41c970a229cfcaf88e894a5b6395e2dbd0280661f",
          "app": "datadog",
          "method": "api-key",
          "credentials": {
              "url": "https://api.datadoghq.com"
          }
      }
    }
    ```
</Tab>
</Tabs>