ネットワークトラフィックの暗号化
Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。
SSL 暗号化の使用を検討している場合は、PostgreSQL のドキュメントをご覧ください。
アプリケーションのデフォルト認証情報(ADC)を使用して接続する
Looker(Google Cloud コア)インスタンスでは、Google Cloud SQL for PostgreSQL の認証方法としてアプリケーションのデフォルト認証情報(ADC)がサポートされています。Google Cloud SQL for PostgreSQL 用に ADC を設定する場合は、次の手順を行う必要があります。
- 権限を借用したサービス アカウントを Cloud SQL データベースに追加する
- Cloud SQL データベースでサービス アカウントの権限借用を設定する
- Cloud SQL for PostgreSQL の追加の構成コマンドを実行する
完全な手順については、Looker(Google Cloud コア)ドキュメントをご覧ください。
ユーザーとセキュリティ
データベースでアクションを実行するには、Looker がデータベース上のユーザーアカウントを持っている必要があります。
Looker(Google Cloud コア)インスタンスで ADC を使用する場合は、Cloud SQL データベースに追加したサービス アカウントのユーザー名の権限を借用します。サービス アカウントのユーザー名は service-<project number>@gcp-sa-looker.iam.gserviceaccount.com
の形式になります。サービス アカウントのユーザー名の末尾が .gserviceaccount.com
である場合は、ユーザー名の .gserviceaccount.com
の部分を削除します。切り捨てられ後、ユーザー名は service-<project number>@gcp-sa-looker.iam
のようになります。
Looker が使用するデータベース ユーザーを構成するには、データベースで次の操作を行います。
データベース ユーザーとパスワードを作成します。
CREATE USER USERNAME WITH ENCRYPTED PASSWORD 'PASSWORD';
Looker がデータベースでアクションを実行できるように、データベース ユーザーに権限を付与します。
GRANT CONNECT ON DATABASE DATABASE_NAME to USERNAME; \c DATABASE_NAME GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO USERNAME; GRANT SELECT ON ALL TABLES IN SCHEMA public TO USERNAME;
public
以外のスキーマを使用している場合は、次のコマンドを実行して Looker に使用権限を付与します。GRANT USAGE ON SCHEMA SCHEMA_NAME TO USERNAME;
public スキーマに今後追加するテーブルを Looker ユーザーが確実に利用できるようにするには、次のコマンドを実行します。
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON tables TO USERNAME; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON sequences TO USERNAME;
ご利用の設定によっては、上記のコマンドを変更する必要がある場合があります。Looker ユーザーが今後の権限を必要とするテーブルを別のユーザーまたはロールが作成している場合、Looker ユーザーの権限の付与を適用する対象のロールまたはユーザーを指定する必要があります。
ALTER DEFAULT PRIVILEGES FOR USER ANOTHER_USERNAME IN SCHEMA SCHEMA_NAME GRANT SELECT ON tables TO USERNAME;
ALTER DEFAULT PRIVILEGES FOR ROLE TARGET_ROLE IN SCHEMA SCHEMA_NAME GRANT SELECT ON sequences TO USERNAME;
たとえば、web_app
ユーザーがテーブルを作成し、looker
ユーザーがそれらのテーブルを使用できるようにするには、GRANT
ステートメントを実行して、looker
ユーザーに web_app
ユーザーにより作成されたそのテーブルに対する権限を付与する必要があります。この場合の対象ロールまたはユーザーは web_app
ユーザーです。つまり、web_app
によって作成されたテーブルに対する権限を変更して、looker
ユーザーにテーブルの読み取り権限を付与します。以下に例を示します。
ALTER DEFAULT PRIVILEGES FOR USER web_app IN SCHEMA public GRANT SELECT ON tables TO looker;
詳細については、PostgreSQL のウェブサイトの ALTER DEFAULT PRIVILEGES
をご覧ください。
一時的スキーマ設定
スクラッチスキーマを作成します。
CREATE SCHEMA SCHEMA_NAME;
管理者ユーザーにユーザーロールのメンバー権限を付与します。
GRANT USERNAME TO ADMIN_USER;
スクラッチスキーマの所有権をLookerユーザーに変更します。
ALTER SCHEMA SCHEMA_NAME OWNER TO USERNAME;
search_path
の設定
Looker をデータベースに接続する前に、Looker SQL Runner がデータベースから特定のメタデータを取得するために使用できる適切な search_path
を設定する必要があります。
ALTER USER USERNAME SET search_path TO '$user',SCHEMA_NAME,SCHEMA_NAME_2,SCHEMA_NAME_3
^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^
include a comma-separated list of
all schemas you'll use with Looker
データベースへの Looker 接続の作成
Looker からデータベースへの接続を作成するには、次の手順を行います。
- Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
- [言語] プルダウン メニューから [Google Cloud PostgreSQL] を選択します。
- 接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。
- 接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。
- これらの設定を保存するには、[接続] をクリックします。
機能のサポート
一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。
Google Cloud PostgreSQL では、Looker 25.18 の時点で、次の機能がサポートされています。
機能 | サポート対象 |
---|---|
サポートレベル | サポート対象 |
Looker(Google Cloud コア) | はい |
対称集計 | はい |
派生テーブル | はい |
永続的な SQL 派生テーブル | はい |
永続的なネイティブ派生テーブル | はい |
安定したビュー | はい |
クエリの強制終了 | はい |
SQL ベースのピボット | はい |
タイムゾーン | はい |
SSL | はい |
Subtotals | はい |
JDBC の追加パラメータ | はい |
大文字と小文字の区別 | はい |
ロケーション タイプ | はい |
リストの種類 | はい |
パーセンタイル | はい |
個別のパーセンタイル | はい |
SQL Runner の表示プロセス | はい |
SQL Runner の説明テーブル | はい |
SQL Runner 表示インデックス | はい |
SQL Runner Select 10 | はい |
SQL ランナーの数 | はい |
SQL の説明 | はい |
OAuth 2.0 認証情報 | いいえ |
コンテキスト コメント | はい |
接続プーリング | はい |
HLL スケッチ | いいえ |
集約テーブルの自動認識 | はい |
増分PDT | はい |
ミリ秒 | はい |
マイクロ秒 | はい |
マテリアライズド ビュー | いいえ |
前期比指標 | いいえ |
Approximate Count Distinct | いいえ |