RDS for PostgreSQL DB インスタンスに Trusted Language Extensions を設定する - Amazon Relational Database Service

RDS for PostgreSQL DB インスタンスに Trusted Language Extensions を設定する

以下のステップでは、 RDS for PostgreSQL DB インスタンスがカスタム DB パラメータグループに関連付けられていることを前提としています。これらの手順には、AWS Management Console または AWS CLI を使用できます。

RDS for PostgreSQL DB インスタンスで信頼できる Trusted Language Extensions をセットアップする場合、そのデータベースに対するアクセス許可を持つデータベースユーザーが使用できるように、特定のデータベースにインストールします。

Trusted Language Extensions をセットアップするには

rds_superuser グループ (ロール) のメンバーであるアカウントを使用して、次のステップを実行します。

  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、 RDS for PostgreSQL DB インスタンスを選択します。

  3. [Configuration] (設定) タブを開きます。RDS for PostgreSQL DB インスタンス。インスタンスの詳細の中から、パラメータグループのリンクを見つけてください。

  4. リンクを選択して、に関連するカスタムパラメータを開きます。RDS for PostgreSQL DB インスタンス。

  5. パラメータ検索フィールドに、shared_pre を入力して shared_preload_libraries パラメータを検索します。

  6. プロパティ値にアクセスするには、[Edit parameters] (パラメータの編集) を選択します。

  7. [Values] (値) フィールドのリストに pg_tle を追加します。値のリスト内の項目を区切るにはカンマを使用します。

    pg_tle が追加された shared_preload_libraries パラメータの画像。
  8. RDS for PostgreSQL DB instance を再起動して、shared_preload_libraries パラメータの変更を有効にします。

  9. インスタンスが使用可能になったら、pg_tle が初期化されていることを確認します。psql を使用して RDS for PostgreSQL DB インスタンスに接続し、次のコマンドを実行します。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pg_tle (1 row)
  10. pg_tle 拡張子を初期化すると、拡張機能を作成できるようになりました。

    CREATE EXTENSION pg_tle;

    以下の psql メタコマンドを使用して、拡張機能がインストールされていることを確認できます。

    labdb=> \dx List of installed extensions Name | Version | Schema | Description ---------+---------+------------+-------------------------------------------- pg_tle | 1.0.1 | pgtle | Trusted-Language Extensions for PostgreSQL plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
  11. RDS for PostgreSQL DB インスタンスのセットアップ時に作成したプライマリユーザー名に pgtle_admin ロールを付与します。デフォルトを受け入れた場合は、postgres です。

    labdb=> GRANT pgtle_admin TO postgres; GRANT ROLE

    次の例に示すように、psql メタコマンドを使用して、付与されたことを確認できます。出力には pgtle_adminpostgres ロールのみが表示されます。詳細については、「rds_superuser ロールを理解する」を参照してください。

    labdb=> \du List of roles Role name | Attributes | Member of -----------------+---------------------------------+----------------------------------- pgtle_admin | Cannot login | {} postgres | Create role, Create DB +| {rds_superuser,pgtle_admin} | Password valid until infinity |...
  12. \q メタコマンドを使用して psql セッションを終了します。

    \q

TLE 拡張機能の作成を開始するには、「例: SQL を使用した信頼できる言語拡張関数の作成」を参照してください。

AWS CLI をデフォルト AWS リージョン に設定することで、CLI コマンドを使用するときに --region 引数を指定しなくても済みます。詳細については、AWS Command Line Interface ユーザーガイドの「設定の基本」を参照してください。

Trusted Language Extensions をセットアップするには
  1. shared_preload_libraries パラメータに pg_tle を追加するには、modify-db-parameter-group AWS CLI コマンドを使用します。

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pg_tle,ApplyMethod=pending-reboot" \ --region aws-region
  2. reboot-db-instance AWS CLI コマンドを使用して、を再起動し、pg_tle ライブラリを初期化します。

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. インスタンスが使用可能になると、pg_tle が初期化されていることを確認できます。psql を使用して RDS for PostgreSQL DB インスタンスに接続し、次のコマンドを実行します。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pg_tle (1 row)

    pg_tle を初期化すると、拡張機能を作成できるようになりました。

    CREATE EXTENSION pg_tle;
  4. RDS for PostgreSQL DB インスタンスのセットアップ時に作成したプライマリユーザー名に pgtle_admin ロールを付与します。デフォルトを受け入れた場合は、postgres です。

    GRANT pgtle_admin TO postgres; GRANT ROLE
  5. 以下のように psql セッションを終了します。

    labdb=> \q

TLE 拡張機能の作成を開始するには、「例: SQL を使用した信頼できる言語拡張関数の作成」を参照してください。