Aurora PostgreSQL DB クラスター に Trusted Language Extensions を設定する - Amazon Aurora

Aurora PostgreSQL DB クラスター に Trusted Language Extensions を設定する

以下のステップでは、Aurora PostgreSQL DB クラスター がカスタム DB クラスター パラメータグループに関連付けられていることを前提としています。これらの手順には、AWS マネジメントコンソール または AWS CLI を使用できます。

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

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

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

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

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

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

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

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

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

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

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

  9. インスタンスが使用可能になったら、pg_tle が初期化されていることを確認します。psql を使用して Aurora 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. Aurora PostgreSQL DB クラスター のセットアップ時に作成したプライマリユーザー名に pgtle_admin ロールを付与します。デフォルトを受け入れた場合は、postgres です。

    labdb=> GRANT pgtle_admin TO postgres; GRANT ROLE

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

    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 コマンドを使用して、Aurora PostgreSQL DB クラスター のライター インスタンスを再起動し、pg_tle ライブラリを初期化します。

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

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

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

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

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

    labdb=> \q

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