Salted Challenge Response Authentication Mechanism (SCRAM) は、パスワードベースの相互認証プロトコルです。 これは、いくつかのレベルのセキュリティを追加し、信頼されていない接続でのパスワード スニッフィングを防ぐチャレンジ応答スキームです。 SCRAM は、暗号化ハッシュ形式でサーバーにパスワードを格納することをサポートしており、高度なセキュリティを提供します。
注
SCRAM 認証方法を使用してAzure Database for PostgreSQLフレキシブル サーバーにアクセスするには、クライアント ライブラリで SCRAM をサポートする必要があります。 詳細については、SCRAM をサポートする ドライバーの一覧 を参照してください。
SCRAM 認証により、アプリケーション サーバーに追加の計算負荷が追加され、各認証のクライアント証明を計算する必要があります。 アプリケーションの接続プール内の接続の数を制限したり (アプリケーションのチャットを減らす)、クライアントで許可される同時トランザクションの数を制限したりすることで、SCRAM によって生じるパフォーマンスのオーバーヘッドを軽減できます (トランザクションが大きくなります)。 SCRAM 認証に移行する前に、ワークロードをテストします。
SCRAM 認証の構成
パラメーターに移動
SCRAM 認証を構成するには、Azure ポータルの [パラメーター] ページにアクセスします。
- Azure portal にサインインする
- Azure Database for PostgreSQL のフレキシブル サーバーに移動してください。
- 左側のメニューの [設定] で、[パラメーター] を選択 します。
- 検索ボックスを使用して、次の手順で説明されているパラメーターを見つけます。
コンフィギュレーションの手順
password_encryptionをSCRAM-SHA-256に変更します。 現在、Azure Database for PostgreSQLでは SHA-256 を使用した SCRAM のみがサポートされています。
認証方法として
SCRAM-SHA-256を許可します。
Important
SCRAM-SHA-256方法のみを選択することで、SCRAM のみの認証を適用できます。 この方法を適用すると、MD5 認証を持つユーザーはサーバーに接続できません。 SCRAM を適用する前に、すべてのユーザー パスワードをSCRAM-SHA-256に更新するまで、MD5 とSCRAM-SHA-256の両方が認証方法であることを確認してください。 手順 7 で説明したクエリを使用して、ユーザーの認証の種類を確認できます。変更を保存します。 これらのプロパティは動的であり、サーバーの再起動は必要ありません。
Azure Database for PostgreSQLフレキシブル サーバー クライアントから、Azure Database for PostgreSQL フレキシブル サーバーに接続します。 たとえば、
psql "host=myPGServer.postgres.database.azure.com port=5432 dbname=postgres user=myDemoUser password=<password> sslmode=require" psql (12.3 (Ubuntu 12.3-1.pgdg18.04+1), server 12.6) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help.パスワードの暗号化を確認します。
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)ユーザーのパスワードを更新します。
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>azure_roles_authtype()関数を使用して、ユーザー認証の種類を確認します。postgres=> SELECT * from azure_roles_authtype(); rolename | authtype ---------------------------+----------- azuresu | NOLOGIN pg_monitor | NOLOGIN pg_read_all_settings | NOLOGIN pg_read_all_stats | NOLOGIN pg_stat_scan_tables | NOLOGIN pg_read_server_files | NOLOGIN pg_write_server_files | NOLOGIN pg_execute_server_program | NOLOGIN pg_signal_backend | NOLOGIN replication | NOLOGIN myDemoUser | SCRAM-256 azure_pg_admin | NOLOGIN srtest | SCRAM-256 sr_md5 | MD5 (14 rows)SCRAM 認証をサポートするクライアントからサーバーに接続します。
SCRAM 認証は、組み込みのマネージド PgBouncer に接続されている場合にもサポートされます。