arrow-left

All pages
gitbookPowered by GitBook
1 of 7

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

CloudSQL - PostgreSQL

Create an integration to manage access to PostgreSQL instances on Google Cloud SQL

Google Cloud SQL PostgreSQL is a fully managed relational database service built for the cloud. It provides a high-performance, scalable, and highly available PostgreSQL database instance without the overhead of managing infrastructure. With Google Cloud SQL, users benefit from Google Cloud's robust infrastructure, which ensures high availability, security, and scalability for their databases.

Through this integration, Apono helps you securely manage access to your Google Cloud SQL PostgreSQL database instances.

To enable Apono to manage Google Cloud SQL PostgreSQL user access, you must create a user and then configure the integration within the Apono UI.


hashtag
Prerequisites

Item
Description

hashtag
Create a PostgreSQL user

You must create a user in your PostgreSQL instance for the Apono connector and grant that user permissions to your databases.

triangle-exclamation

You must use the admin account and password to connect to your database.

Following these steps to create a user and grant it permissions:

  1. In the Google Cloud console, with either Built-in authentication or Cloud IAM authentication.

Use apono_connector for the username.

This authentication method grants the user the cloudsqlsuperuser role. Be sure to set a strong password for the user.

circle-check

As an alternative, you can run the following command from your Postgre client:

CREATE USER 'apono_connector'@'%' IDENTIFIED BY 'password'

  1. (Cloud IAM only) In your preferred client tool, grant cloudsqlsuperuser access to the user account.

  1. In your preferred client tool, grant the cloudsqlsuperuser role privileges on all databases except template0 and cloudsqladmin. This allows Apono to perform tasks that are not restricted to a single schema or object within the database, such as creating, altering, and dropping database objects.

  1. For each database to be managed through Apono, connect to the database and grant cloudsqlsuperuser privileges on all objects in the schemas. This allows Apono to perform tasks that are restricted to schemas within the database, such as modifying table structures, creating new sequences, or altering functions.

  1. Connect to the template1 database and grant cloudsqlsuperuser privileges on all objects in the schemas. For any new databases created in the future, this allows Apono to perform tasks that are restricted to schemas within the database, such as modifying table structures, creating new sequences, or altering functions.

  1. (Built-in authentication only) with the credentials from step 1.

circle-info

When using Cloud IAM authentication, the service account and its permissions are managed through Google Cloud IAM roles and policies. The service account is used to authenticate to the Cloud SQL instance.

A secret does not need to be created.


hashtag
Integrate Google Cloud SQL - PostgreSQL

circle-check

You can also use the steps below to integrate with Apono using Terraform.

In step 11, instead of clicking Confirm, follow the Are you integrating with Apono using Terraform? guidance.

Follow these steps to complete the integration:

  1. On the tab, click Google Cloud SQL - PostgreSQL. The Connect Integration page appears.

  2. Under Discovery, click one or more resource types and cloud services to sync with Apono.

circle-info

Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage access flows to these resources.

  1. Click Next. The Apono connector section expands.

  2. From the dropdown menu, select a connector.

circle-check

If the desired connector is not listed, click + Add new connector and follow the instructions for creating a connector.

  1. Click Next. The Integration Config section expands.

  2. Define the Integration Config settings.

    Setting
    Description
circle-info

A secret is not needed or Cloud IAM authentication.

  1. Click Next. The Get more with Apono section expands.

  2. Define the Get more with Apono settings.

    Setting
    Description
chevron-right💡Are you integrating with Apono using Terraform?hashtag

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.

Now that you have completed this integration, you can that grant permission to your Google Cloud SQL PostgreSQL instance.

Use apono-connector-iam-sa@[PROJECT_ID].iam.gserviceaccount.com for the Principal.

This authentication method does not grant the user account database privileges.

circle-exclamation

Be sure that the Apono connector GCP service account (apono-connector-iam-sa@[PROJECT_ID].iam.gserviceaccount.com) has the Cloud SQL Admin role.

Authorization type for the MySQL service account user:

  • IAM Auth: Cloud IAM authentication

  • User / Password: Built-in authentication

Project ID

ID of the project where the PostgreSQL instance is deployed

Region

Location where the PostgreSQL instance is deployed

Instance ID

ID of the PostgreSQL instance

Instance ID User Override

(Optional) Allows overriding the instance ID for the user

Database Name

Name of the database to integrate By default, Apono sets this value to postgre.

SSL Mode

(Optionl) Mode of Secure Sockets Layer (SSL) encryption used to secure the connection with the SQL database server:

  • require: An SSL-encrypted connection must be used.

  • allow: An SSL-encrypted or unencrypted connection is used. If an SSL-encrypted connection is unavailable, the unencrypted connection is used.

  • Click Next. The Secret Store section expands.

  • (User/Password only) Associate the secret or credentials.

  • User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Learn more about .

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    (Optional) Fallback approver if no is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several :

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an

  • Click Confirm.

  • Click to copy the code.
  • Make any additional edits.

  • Deploy the code in your Terraform.

  • Refer to Integration Config Metadataarrow-up-right for more details about the schema definition.

    Apono Connector

    On-prem connection serving as a bridge between your Google Cloud PostgreSQL databases and Apono Minimum Required Version: 1.4.1 Use the following steps to update an existing connector.

    Cloud SQL Admin API

    APIarrow-up-right for managing database instances with resources, such as BackupRuns, Databases, and Instances

    Cloud SQL Admin Role

    (Cloud IAM authentication only) Google Cloud role that the Apono connector's service user must have at the instance's project or organization level

    PostgreSQL Info

    Information for the database instance to be integrated:

    • Project IDarrow-up-right

    • Dataset Namearrow-up-right

    Integration Name

    Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    Credential Rotation

    (Optional) Number of days after which the database credentials must be rotated Learn more about the Credentials Rotation Policy.

    create a new userarrow-up-right
    Create a secret
    Catalogarrow-up-right
    GCP
    create access flows
    Google Cloud SQL - PostgreSQL

    Auth Type

    GCP Integrations

    Learn how to integrate and manage access to your GCP cloud

    If your organization uses Google Cloud Platform (GCP), Apono's GCP integrations can help you securely manage access to your GCP cloud-based services and databases.

    By identifying and transforming existing privileges, Apono can shift your cloud management from broad permissions to on-demand access flows.

    Through our GCP integrations, Apono enables you to perform the following access tasks:

    • Limit Access: Discover existing privileges in GCP and convert them to just-in-time Access Flows.

    ALTER ROLE "<CONNECTOR_USERNAME>" WITH CREATEROLE;
    GRANT cloudsqlsuperuser TO "<CONNECTOR_USERNAME>";
    DO $$
    DECLARE
      database_name text;
    BEGIN
      FOR database_name IN (SELECT datname FROM pg_database WHERE datname != 'template0' AND datname != 'cloudsqladmin') LOOP
        EXECUTE 'GRANT ALL PRIVILEGES ON DATABASE ' || quote_ident(database_name) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
      END LOOP;
    END; $$
    
    DO $$
    DECLARE
      schema text;
    BEGIN
      FOR schema IN (SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT LIKE 'pg_%' AND schema_name != 'information_schema' AND schema_name != 'cron') LOOP
        EXECUTE 'GRANT ALL PRIVILEGES ON SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
        EXECUTE 'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
        EXECUTE 'GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
        EXECUTE 'GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
      END LOOP;
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON TABLES TO cloudsqlsuperuser WITH GRANT OPTION';
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON SEQUENCES TO cloudsqlsuperuser WITH GRANT OPTION';
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON FUNCTIONS TO cloudsqlsuperuser WITH GRANT OPTION';
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON SCHEMAS TO cloudsqlsuperuser WITH GRANT OPTION';
    END; $$
    DO $$
    DECLARE
      schema text;
    BEGIN
      FOR schema IN (SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT LIKE 'pg_%' AND schema_name != 'information_schema' AND schema_name != 'cron') LOOP
        EXECUTE 'GRANT ALL PRIVILEGES ON SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
        EXECUTE 'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
        EXECUTE 'GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
        EXECUTE 'GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ' || quote_ident(schema) || ' TO cloudsqlsuperuser WITH GRANT OPTION';
      END LOOP;
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON TABLES TO cloudsqlsuperuser WITH GRANT OPTION';
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON SEQUENCES TO cloudsqlsuperuser WITH GRANT OPTION';
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON FUNCTIONS TO cloudsqlsuperuser WITH GRANT OPTION';
      EXECUTE 'ALTER DEFAULT PRIVILEGES GRANT ALL PRIVILEGES ON SCHEMAS TO cloudsqlsuperuser WITH GRANT OPTION';
    END; $$
    disable
    : An unencrypted connection is used.
  • prefer: An SSL-encrypted connection is attempted. If the encrypted connection is unavailable, the unencrypted connection is used.

  • verify-ca: An SSL-encrypted connection must be used and a server certification verification against the provided CA certificates must pass.

  • verify-full: An SSL-encrypted connection must be used and a server certification verification against the provided CA certificates must pass. Additionally, the server hostname is checked against the certificate's names.

  • must be defined.
    Integration Owner
    must also be defined.
    Periodic User Cleanup & Deletion
    resource owner
    resource owners

    Enable Self-Service Access: Allow developers to request access to GCP services, buckets, and instances via Slack.

  • Automate Approval Workflows: Create automatic approval processes for sensitive GCP resources.

  • Restrict Third-Party Access: Grant third-parties (customers or vendors) time-based access to specific services with MFA verification.

  • Review Access: Audit user cloud access, permissions granted, and reasons for access across GCP.

  • \

    Google Cloud logo

    CloudSQL - MySQL

    Create an integration to manage access to Cloud SQL MySQL databases

    MySQL is a reliable and secure open-source relational database system. It serves as the main data store for various applications, websites, and products. This includes mission-critical applications and dynamic websites. With Cloud SQL, users benefit from Google Cloud's robust infrastructure, which ensures high availability, security, and scalability for their databases.

    Through this integration, Apono helps you securely manage access to your Cloud SQL MySQL databases.


    hashtag
    Prerequisites

    Item
    Description

    hashtag
    Create a MySQL user

    You must create a user in your MySQL instance for the Apono connector and grant that user permissions to your databases.

    Follow these steps to create a user and grant it permissions:

    1. In the Google Cloud console, with either Built-in authentication or Cloud IAM authentication.

    Use apono_connector for the username.

    Be sure to set a strong password for the user.

    circle-check

    As an alternative, you can run the following common from your MySQL client:

    CREATE USER 'apono_connector'@'%' IDENTIFIED BY 'password';

    1. In your preferred client tool, expose databases to the user. This allows Apono to view database names without accessing the contents of each database.

    1. Grant the user database permissions. The following commands grant Apono the following permissions:

      • Creating users

      • Updating user information and privileges

    Allows Apono to read data from databases

    Allows Apono to read and modify data

    Allows Apono administrative-level access, including the ability to execute and drop tables

    1. (MySQL 8.0+) Grant the user the authority to manage other roles. This enables Apono to create, alter, and drop roles. However, this role does not inherently grant specific database access permissions.

    1. with the credentials from step 1 above.

    You can now .


    hashtag
    Integrate Google Cloud SQL - MySQL

    circle-check

    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.

    Follow these steps to complete the integration:

    1. On the tab, click Google Cloud SQL - MySQL. The Connect Integration page appears.

    2. Under Discovery, click one or more resource types and cloud services to sync with Apono.

    circle-info

    Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage access flows to these resources.

    1. Click Next. The Apono connector section expands.

    2. From the dropdown menu, select a connector.

    circle-check

    If the desired connector is not listed, click + Add new connector and follow the instructions for creating a connector.

    1. Click Next. The Integration Config section expands.

    2. Define the Integration Config settings.

      Setting
      Description
    circle-info

    A secret is not needed or Cloud IAM authentication.

    1. Click Next. The Get more with Apono section expands.

    2. Define the Get more with Apono settings.

      Setting
      Description
    chevron-right💡Are you integrating with Apono using Terraform?hashtag

    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.

    Now that you have completed this integration, you can that grant permission to your Google Cloud SQL MySQL database.

    Use apono-connector-iam-sa@[PROJECT_ID].iam.gserviceaccount.com for the Principal.

    circle-exclamation

    Be sure that the Apono connector GCP service account (apono-connector-iam-sa@[PROJECT_ID].iam.gserviceaccount.com) has the Cloud SQL Admin role.

    Monitoring and troubleshooting processes running on the database
  • Grant the user only one of the following sets of permissions. The chosen set defines the highest level of permissions to provision with Apono. Click on each tab to reveal the SQL commands.

  • Authorization type for the MySQL service account user

    Option

    Description

    IAM Auth

    Cloud IAM authentication

    User / Password

    Built-in authentication

    Project ID

    ID of the project where the MySQL instance is deployed

    Region

    Location where the MySQL instance is deployed

    Instance ID

    ID of the MySQL instance

    Instance ID User Override

    (Optional) Allows overriding the instance ID for the user

  • Click Next. The Secret Store section expands.

  • (User/Password only) Associate the secret or credentials.

  • User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Learn more about .

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    (Optional) Fallback approver if no is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several :

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an

  • Click Confirm.

  • Click to copy the code.
  • Make any additional edits.

  • Deploy the code in your Terraform.

  • Refer to Integration Config Metadataarrow-up-right for more details about the schema definition.

    Apono Connector

    On-prem connection serving as a bridge between your Google Cloud SQL MySQL databases and Apono Minimum Required Version: 1.4.1 Use the following steps to update an existing connector.

    Cloud SQL Admin API

    APIarrow-up-right for managing database instances with resources, such as BackupRuns, Databases, and Instances

    Cloud SQL Admin Role

    (Cloud IAM authentication only) Google Cloud role that the Apono connector's service user must have at the instance's project or organization level

    Integration Name

    Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    Credential Rotation

    (Optional) Number of days after which the database credentials must be rotated Learn more about the Credentials Rotation Policy.

    create a new userarrow-up-right
    Create a secret
    integrate Google Cloud SQL - MySQL
    Catalogarrow-up-right
    GCP
    create access flow
    Google Cloud SQL - MySQL

    Auth Type

    Integrate a GCP organization or project

    Create an integration to manage access to a GCP organization or project resources

    Apono offers GCP users a simple way to centralize cloud management through our platform. Through a single integration, you can manage multiple GCP services across various organizations and projects.


    hashtag
    Prerequisites

    Item
    Description

    hashtag
    Associate BigQuery dataset permissions

    Google BigQuery is a fast, scalable, secure, fully managed data warehouse service in the cloud, serving as a primary data store for vast datasets and analytic workloads.

    To add this resource to your Google Project or Organization, you must create a custom role with BigQuery dataset permissions and assign the role to the service account for the Apono connector.

    circle-check

    The following instructions in this section use the Google Cloud CLI.

    However, you can also through the Google Console, and IAM client library, or the REST API. Additionally, you can to the Apono connector through the Google Console.

    Follow these steps to associate the permissions through the Google Cloud CLI:

    1. In your shell environment, log in to Google Cloud and enable the API.

    2. Set the environment variables.

    1. Create the custom role. Be sure to replace the placeholders (<ROLE_ID>, <TITLE>, and <DESCRIPTION>) with actual values of your choosing for the role ID, title, and description of the role.

    1. Using the role ID defined in the previous step, assign the custom role to the Apono connector service account.


    hashtag
    Enable the Cloud Asset API

    To manage and monitor your cloud assets, you must enable the Cloud Asset API.

    Follow these steps to enable this API:

    1. In your shell environment, log in to Google Cloud and enable the API.


    hashtag
    Integrate with GCP

    hashtag
    Organization

    circle-check

    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.

    Follow these steps to integrate Apono with your GCP organization:

    1. On the tab, click GCP. The Connect Integrations Group page appears.

    2. Under Discovery, click Google Organization.

    3. Click one or more resource types to sync with Apono.

    circle-info

    Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage to these resources.

    1. Click Next. The Apono connector section expands.

    2. From the dropdown menu, select a connector. Choosing a connector links Apono to the roles available in the organization where the connector is located.

    circle-check

    If the desired connector is not listed, click + Add new connector and follow the instructions for creating an .

    1. Click Next. The Integration Config section expands.

    2. Define the Integration Config settings.

      Setting
      Description
    chevron-right💡Are you integrating with Apono using Terraform?hashtag

    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.

    After connecting your GCP organization to Apono, you will be redirected to the Connected tab to view your integrations. The new GCP integration will initialize once it completes its first data fetch. Upon completion, the integration will be marked Active.

    Now that you have completed this integration, you can that grant permission to GCP organizational roles.

    hashtag
    Project

    circle-info

    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.

    Follow these steps to integrate Apono with your GCP project:

    1. On the tab, click GCP. The Connect Integrations Group page appears.

    2. Under Discovery, click Google Project.

    3. Click one or more resource types to sync with Apono.

    circle-info

    Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage to these resources.

    1. Click Next. The Apono connector section expands.

    2. From the dropdown menu, select a connector. Choosing a connector links Apono to the roles available in the organization where the connector is located.

    circle-check

    If the desired connector is not listed, click + Add new connector and follow the instructions for creating an .

    1. Click Next. The Integration Config section expands.

    2. Define the Integration Config settings.

      Setting
      Description
    chevron-right💡Are you integrating with Apono using Terraform?hashtag

    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.

    After connecting your GCP project to Apono, you will be redirected to the Connected tab to view your integrations. The new GCP integration will initialize once it completes its first data fetch. Upon completion, the integration will be marked Active.

    Now that you have completed this integration, you can that grant permission to GCP organizational roles.

    GRANT SHOW DATABASES ON *.* TO 'apono_connector'@'%';
    GRANT SELECT ON *.* TO 'apono_connector'@'%';
    GRANT GRANT OPTION ON *.* TO 'apono_connector'@'%';
    GRANT SELECT,ALTER,ALTER ROUTINE,CREATE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,DELETE,INDEX,INSERT,TRIGGER,UPDATE,REFERENCES ON *.* TO 'apono_connector'@'%';
    GRANT GRANT OPTION ON *.* TO 'apono_connector'@'%';
    GRANT EXECUTE,DROP,SELECT,ALTER,ALTER ROUTINE,CREATE,CREATE ROUTINE,CREATE TEMPORARY TABLES,CREATE VIEW,DELETE,INDEX,INSERT,TRIGGER,UPDATE,REFERENCES ON *.* TO 'apono_connector'@'%';
    GRANT GRANT OPTION ON *.* TO 'apono_connector'@'%';
    GRANT ROLE_ADMIN on *.* to 'apono_connector';
    GRANT CREATE USER ON *.* TO 'apono_connector'@'%';
    GRANT UPDATE ON mysql.* TO 'apono_connector'@'%';
    GRANT PROCESS ON *.* TO 'apono_connector'@'%';
    must be defined.
    Integration Owner
    must also be defined.
    Periodic User Cleanup & Deletion
    resource owner
    resource owners

  • Click Next. The Get more with Apono section expands.

  • Define the Get more with Apono settings.

    Setting
    Description

    Credential Rotation

    (Optional) Number of days after which the database credentials must be rotated Learn more about the .

    User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Learn more about .

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

  • Click Confirm.

  • Click to copy the code.
  • Make any additional edits.

  • Deploy the code in your Terraform.

  • Refer to Integration Config Metadataarrow-up-right for more details about the schema definition.

  • Click Next. The Get more with Apono section expands.

  • Define the Get more with Apono settings.

    Setting
    Description

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    (Optional) Fallback approver if no is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several :

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an

  • Click Confirm.

  • Click to copy the code.
  • Make any additional edits.

  • Deploy the code in your Terraform.

  • Refer to Integration Config Metadataarrow-up-right for more details about the schema definition.

    Apono Connector

    On-prem connection serving as a bridge between a Google Cloud instance and Apono

    Apono Premium

    Apono planarrow-up-right providing the most features and dedicated account support

    Google User Account

    User account with owner permissionsarrow-up-right

    Google Cloud Command Line Interface (Google Cloud CLI)

    Command-line interfacearrow-up-right used to manage Google Cloud resources

    Google Cloud Information

    Information for your Google Cloud instance associated with the Apono connector Google-defined:

    • (Organization) Organization IDarrow-up-right

    • Project IDarrow-up-right

    User-defined

    • Service Account Name

    Integration Name

    Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    Integration Name

    Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    create a custom rolearrow-up-right
    assign the custom rolearrow-up-right
    Catalogarrow-up-right
    access flows
    Apono connector
    create access flows
    Catalogarrow-up-right
    access flows
    Apono connector
    create access flows
    Google Organization environment option
    Google Project environment option

    Organization ID

    Project ID

    gcloud auth login
    gcloud services enable cloudresourcemanager.googleapis.com
    gcloud services enable iam.googleapis.com
    export GCP_PROJECT_ID=<GOOGLE_PROJECT_ID>
    export SERVICE_ACCOUNT_NAME=<SERVICE_ACCOUNT_NAME>
    export GCP_ORGANIZATION_ID=<GOOGLE_ORGANIZATION_ID>
    export GCP_PROJECT_ID=<GOOGLE_PROJECT_ID>
    export SERVICE_ACCOUNT_NAME=<SERVICE_ACCOUNT_NAME>
    gcloud iam roles create <ROLE_ID> --project=$GCP_PROJECT_ID --title="<TITLE>" --description="<DESCRIPTION>" --permissions=bigquery.datasets.get,bigquery.datasets.update,bigquery.datasets.getIamPolicy,bigquery.datasets.setIamPolicy --stage=ALPHA
    gcloud iam roles create <ROLE_ID> --organization=$GCP_ORGANIZATION_ID --title="<TITLE>" --description="<DESCRIPTION>" --permissions=bigquery.datasets.get,bigquery.datasets.update,bigquery.datasets.getIamPolicy,bigquery.datasets.setIamPolicy --stage=ALPHA
    gcloud projects add-iam-policy-binding $GCP_PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$GCP_PROJECT_ID.iam.gserviceaccount.com" --role="projects/$GCP_PROJECT_ID/roles/<ROLD_ID>"
    gcloud organizations add-iam-policy-binding $GCP_ORGANIZATION_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$GCP_PROJECT_ID.iam.gserviceaccount.com" --role="organizations/$GCP_ORGANIZATION_ID/roles/<ROLE_ID>"
    gcloud auth login
    gcloud services enable cloudasset.googleapis.com --project=<GOOGLE_PROJECT_ID>
    must be defined.
    Integration Owner
    must also be defined.

    (Optional) Fallback approver if no resource owner is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner must be defined.

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several resource owners:

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an Integration Owner must also be defined.

    GCP organization IDarrow-up-right
    Credentials Rotation Policy
    Periodic User Cleanup & Deletion
    GCP project IDarrow-up-right
    resource owner
    resource owners

    AlloyDB

    Create an integration to manage access to an AlloyDB instance

    AlloyDB is a fully managed PostgreSQL-compatible database service on Google Cloud. It offers high performance, scalability, and reliability for demanding enterprise workloads.

    Through this integration, Apono helps you securely manage access to your AlloyDB instance.


    hashtag
    Prerequisites

    Item
    Description

    hashtag
    Assign roles to the Apono connector

    Use the following tabs to assign roles to the Apono connector for either your or .

    Follow these steps to assign roles to the Apono connector:

    1. In your shell environment, log in to Google Cloud and enable the API.

    1. Set the environment variables.


    hashtag
    Create an AlloyDB user

    You must create a user in your AlloyDB instance for the Apono connector and grant that user permissions.

    Use the following steps to create a user for the Apono connector and grant it permissions:

    1. Create a new user and grant permissions with either or .

    Run the following commands from your PostgreSQL client.

    1. In the Google Cloud console, enable IAM authentication for your AlloyDB instance by setting the alloydb.iam_authentication flag to on.

    2. Run the following command to grant superuser privileges to the Apono connector user.

    1. (Built-in Authentication only) with the credentials from step 1.

    circle-check

    When using IAM authentication, the service account and its permissions are managed through Google Cloud IAM roles and policies.

    A secret does not need to be created.


    hashtag
    Integrate AlloyDB

    circle-check

    You can also use the steps below to integrate with Apono using Terraform.

    In step 11, instead of clicking Confirm, follow the Are you integrating with Apono using Terraform? guidance.

    Follow these steps to complete the integration:

    1. On the tab, click AlloyDB. The Connect Integration page appears.

    2. Under Discovery, select one or multiple resource types for Apono to discover in the instance.

    3. Click Next. The Apono connector section expands.

    circle-check

    If the desired connector is not listed, click + Add new connector and follow the instructions for creating a .

    1. Click Next. The Integration Config page appears.

    2. Define the Integration Config settings.

    Setting
    Description
    1. Click Next. The Secret Store section expands.

    2. .

    3. Click Next. The Get more with Apono section expands.

    Setting
    Description
    1. Click Confirm.

    chevron-right💡Are you integrating with Apono using Terraform?hashtag

    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.

    Now that you have completed this integration, you can create that grant permission to your AlloyDB instance.

    Integrate with GKE

    Create an integration to manage access to Kubernetes clusters on Google Cloud

    With a Kubernetes cluster in GKE on Google Cloud, GKE handles the complexities of Kubernetes management. Google Cloud provides a reliable, scalable database service.

    Through this integration, Apono helps you securely manage access to your Google Cloud Kubernetes cluster.


    hashtag
    Prerequisites

    Item
    Description

    hashtag
    Integrate with Google Kubernetes Engine (GKE)

    circle-check

    You can also use the steps below to integrate with Apono using Terraform.

    In step 11, instead of clicking Confirm, follow the Are you integrating with Apono using Terraform? guidance.

    Follow these steps to complete the integration:

    1. On the tab, click Google Kubernetes Engine (GKE). The Connect Integration page appears.

    2. Under Discovery, click one or more resource types and cloud services to sync with Apono.

    circle-info

    Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage to these resources.

    1. Click Next. The Apono connector section expands.

    2. From the dropdown menu, select a connector.

    circle-check

    If the desired connector is not listed, click + Add new connector and follow the instructions for creating a connector.

    1. Click Next. The Integration Config section expands.

    2. Define the Integration Config settings.

      Setting
      Description
    circle-info

    When the Apono connector is installed on the GKE cluster, you do not need to enter values for the optional fields or to provide a secret.

    1. Click Next. The Get more with Apono section expands.

    2. Define the Get more with Apono settings.

      Setting
      Description
    chevron-right💡Are you integrating with Apono using Terraform?hashtag

    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.

    Now that you have completed this integration, you can that grant permission to your Google Cloud Kubernetes cluster.

    Assign roles to the connector.

    Follow these steps to assign roles to the Apono connector:

    1. In your shell environment, log in to Google Cloud and enable the API.

    gcloud alpha auth login
    gcloud services enable
    
    1. Set the environment variables.

    export GCP_ORGANIZATION_ID=<GOOGLE_ORGANIZATION_ID>
    export GCP_PROJECT_ID=<GOOGLE_PROJECT_ID
    
    1. Assign roles to the connector.

    From the dropdown menu, select a connector. Choosing a connector links Apono to all the services available on the account where the connector is located.

    Port

    Port value for the database

    By default, Apono sets this value to 5432.

    Instance ID User Override (optional)

    Overrides the instance ID for the user

    Database Name

    Name of the database to integrate

    By default, Apono sets this value to postgre.

    SSL Mode

    (Optional) Mode of Secure Sockets Layer (SSL) encryption used to secure the connection with the SQL database server

    Be sure to choose the SSL mode based on your AlloyDB primary instance :

    • require: An SSL-encrypted connection must be used.

    • allow: An SSL-encrypted or unencrypted connection is used. If an SSL encrypted connection is unavailable, the unencrypted connection is used.

    Define the Get more with Apono settings.
    Click to copy the code.
  • Make any additional edits.

  • Deploy the code in your Terraform.

  • Refer to Integration Config Metadataarrow-up-right for more details about the schema definition.

    Apono Connector

    On-prem connection serving as a bridge between your Google Cloud SQL MySQL databases and Apono

    Minimum Required Version: 1.6.4

    Use the following steps to update an existing connector.

    Allow Connector IP Access

    Allows the Apono connector to communicate with the AlloyDB instance

    You must allow the connector IP range in the AlloyDB primary instance's IP allow list.

    API Services

    API services that must enabled:

    • AlloyDB API

    • Compute Engine API

    • Service Networking API

    See for more information.

    AlloyDB Information

    Identifiers for AlloyDB resources:

    • Primary Instance ID

    • Cluster ID

    See View instance detailsarrow-up-right to learn how to obtain these identifiers.

    Integration Name

    Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    Auth Type

    Authorization type for the AlloyDB user:

    • User / Password: Apono-created local user credentials

    • IAM Authentication: Cloud IAM authentication

    Project ID

    ID of the project associated with the AlloyDB instance

    Location

    Location of the AlloyDB instance

    Primary Instance ID

    ID for the primary instance within the AlloyDB cluster

    Cluster ID

    ID for the AlloyDB cluster

    Credential Rotation

    (Optional) Number of days after which the database credentials must be rotated Learn more about the Credentials Rotation Policy.

    User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Learn more about Periodic User Cleanup & Deletion.

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    (Optional) Fallback approver if no resource owner is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner must be defined.

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several resource owners:

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an Integration Owner must also be defined.

    Google Project
    Google Organization
    Built-in Authentication
    IAM Authentication
    Create a secret
    Catalogarrow-up-right
    connector for GCP
    Associate the secret or credentials
    access flows
    gcloud auth login
    gcloud services enable cloudresourcemanager.googleapis.com
    gcloud services enable iam.googleapis.com
    export GCP_PROJECT_ID=<GOOGLE_PROJECT_ID>
    export SERVICE_ACCOUNT_NAME=<SERVICE_ACCOUNT_NAME>
    gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \
        --member="
    

    (Optional) URL of the server where the cluster is deployed Leave this field blank to connect the cluster where the Apono connector is deployed.

    Certificate Authority

    (Optional) Ensures that the Kubernetes API server you are communicating with is trusted and authentic Leave this field blank to connect the cluster where the Apono connector is deployed.

    Project ID

    (Optional) ID of the GCP project where the cluster is deployed

    Region

    (Optional) Location where the cluster is deployed

    Cluster Name

    (Optional) Name of the cluster to connect The cluster name should be the same as it appears in GKE.

  • Click Next. The Secret Store section expands.

  • (User/Password only) Associate the secret or credentials.

  • User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Learn more about .

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    (Optional) Fallback approver if no is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several :

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an

  • Click Confirm.

  • Click to copy the code.
  • Make any additional edits.

  • Deploy the code in your Terraform.

  • Refer to Integration Config Metadataarrow-up-right for more details about the schema definition.

    Apono Connector

    On-prem connection installed on the GKE cluster that serves as a bridge between a Kubernetes cluster and Apono

    Kubernetes Engine Cluster Role

    Google Cloud rolearrow-up-right that grants the Apono connector's service account access to retrieve and list GKE clusters Apono does not require admin permissions to the Kubernetes environment.

    Integration Name

    Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    Credential Rotation

    (Optional) Number of days after which the database credentials must be rotated Learn more about the Credentials Rotation Policy.

    Catalogarrow-up-right
    access flows
    GCP
    create access flows
    Google Kubernetes Engine (GKE) tile

    Server URL

    CREATE USER CONNECTOR_USERNAME WITH PASSWORD 'password';
    GRANT alloydbsuperuser TO CONNECTOR_USERNAME;
    gcloud alloydb users set-superuser CONNECTOR_USERNAME_IAM_SA_EMAIL@[PROJECT_ID].iam \
    --superuser=true \
    --cluster=CLUSTER_ID \
    --region=REGION_ID
    must be defined.
    Integration Owner
    must also be defined.
    Periodic User Cleanup & Deletion
    resource owner
    resource owners

    disable: An unencrypted connection is used.

  • prefer: An SSL-encrypted connection is attempted. If the encrypted connection is unavailable, the unencrypted connection is used.

  • verify-ca: An SSL-encrypted connection must be used and a server certification verification against the provided CA certificates must pass.

  • verify-full: An SSL-encrypted connection must be used and a server certification verification against the provided CA certificates must pass. Additionally, the server hostname is checked against the certificate's names.

  • serviceAccount:
    $SERVICE_ACCOUNT_NAME
    @
    $GCP_PROJECT_ID
    .iam.gserviceaccount.com
    "
    \
    --role="roles/alloydb.admin" \
    --project $GCP_PROJECT_ID
    gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \
    --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$GCP_PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/serviceusage.serviceUsageConsumer" \
    --project $GCP_PROJECT_ID
    cloudresourcemanager.googleapis.com
    gcloud services enable iam.googleapis.com
    >
    export SERVICE_ACCOUNT_NAME=<SERVICE_ACCOUNT_NAME>
    Enabling and Disabling Servicesarrow-up-right
    SSL mode configurationarrow-up-right
    gcloud organizations add-iam-policy-binding $GCP_ORGANIZATION_ID \
        --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$GCP_PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/alloydb.admin"
    
    gcloud organizations add-iam-policy-binding $GCP_ORGANIZATION_ID \
        --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$GCP_PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/serviceusage.serviceUsageConsumer"

    Google Cloud Functions

    Google Cloud Functions enables you to build and connect cloud services by writing single-purpose functions that are attached to events emitted from your cloud infrastructure and services.

    Its serverless architecture frees you to write, test, and deploy functions quickly without having to manage infrastructure setup.

    With this integration, you can connect your internal applications to Cloud Functions and manage access to those applications with Apono.

    triangle-exclamation

    Apono currently supports the original version of Google Cloud Functions, 1st Gen.


    hashtag
    Prerequisites
    Item
    Description

    Apono Connector

    On-prem serving as a bridge between your Google Function and Apono, deployed with a GCP service account Minimum Required Version: 1.5.3 Use the following steps if you need to .

    Cloud Function (1st gen)

    Named function set up within To allow the Apono connector to call the Cloud Function, add the Cloud Functions Invoke and Cloud Functions Viewer roles to the apono-connector service account apono-connector-iam-sa for that Cloud Function.


    hashtag
    Integrate a Google Cloud Function

    circle-check

    You can also use the steps below to integrate with Apono using Terraform.

    In step 8, instead of clicking Confirm, follow the Are you integrating with Apono using Terraform? guidance.

    Follow these steps to complete the integration:

    1. On the Catalogarrow-up-right tab, click Cloud Function Custom Integration. The Connect Integration page appears.

    2. Under Discovery, click Next. The Apono connector section expands.

    3. From the dropdown menu, select a connector.

    circle-check

    If the desired connector is not listed, click + Add new connector and follow the instructions for creating a GCP connector.

    1. Click Next. The Integration Config section expands.

    2. Define the Integration Config settings.

      Setting
      Description

      Integration Name

      Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

    3. Click Next. The Get more with Apono section expands.

    4. Define the Get more with Apono settings.

      Setting
      Description
    5. Click Confirm.

    chevron-right💡Are you integrating with Apono using Terraform?hashtag

    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 for more details about the schema definition.

    Now that you have completed this integration, you can create access flows that grant permission to your internal application.

    Resource Owner

    (Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several :

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. 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.

    NOTE: When this setting is defined, an

    Access Details

    Instructions for accessing this integrations's resources

    Custom Parameters

    Key-value pairs to send to the Google Cloud Function For example, you can provide a Google Function with a redirect URL that is used for internal provisioning access and passed as part of the action requests.

    Project ID

    ID of the project associated with the Cloud Function

    Region

    Location of the Google Cloud Function instance

    Function Name

    Name of the Google Cloud Function

    Credential Rotation

    (Optional) Number of days after which the database credentials must be rotated Learn more about the Credentials Rotation Policy.

    User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Learn more about Periodic User Cleanup & Deletion.

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources 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 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    Integration Config Metadataarrow-up-right
    connection
    update an existing connector
    Cloud Functionsarrow-up-right

    (Optional) Fallback approver if no is found Follow these steps to define one or several integration owners:

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner

    must be defined.
    Integration Owner
    must also be defined.
    resource owner
    resource owners