Azure Backup を使用した PostgreSQL データベースのバックアップのトラブルシューティング

この記事では、Azure Backup を使用した Azure PostgreSQL データベースのバックアップに関するトラブルシューティング情報を記載します。

UserErrorMSIMissingPermissions

バックアップ コンテナー MSI に対して、バックアップまたは復元する PG サーバーの読み取りアクセス権を付与します。

PostgreSQL データベースへのセキュリティで保護された接続を確立するために、Azure Backup では、マネージド サービス ID (MSI) 認証モデルが使用されます。 したがって、バックアップ コンテナーは、ユーザーによって明示的にアクセス許可が付与されているリソースにのみアクセスできます。

システム MSI は、作成時に自動的にコンテナーに割り当てられます。 このコンテナー MSI に、データベースのバックアップ元となる PostgreSQL サーバーへのアクセス権を付与する必要があります。

手順:

  1. Postgres サーバーで、 [アクセス制御 (IAM)] ペインに移動します。

    Access Control pane

  2. [ロールの割り当ての追加] を選択します。

    Screenshot to add role assignment.

  3. 開いた右側のコンテキスト ペインで、次の情報を入力します。

    • ロール: ドロップダウン リストから [閲覧者] ロールを選択します。
    • アクセスの割り当て先: ドロップダウン リストから [ユーザー、グループ、またはサービス プリンシパル] オプションを選択します。
    • 選択: このサーバーとそのデータベースをバックアップする先のバックアップ コンテナーの名前を入力します。

    Screenshot showing how to select role.

UserErrorBackupUserAuthFailed

Microsoft Entra ID で認証できるデータベース バックアップ ユーザーを作成します:

このエラーは、PostgreSQL サーバーの Microsoft Entra 管理者が存在しない場合、または Microsoft Entra ID を使用して認証できるバックアップ ユーザーが存在しない場合に発生する可能性があります。

ステップ:

OSS サーバーに Active Directory 管理者を追加します。

パスワードの代わりに Microsoft Entra ID で認証できるユーザーを使用してデータベースに接続する場合、この手順が必要です。 Azure Database for PostgreSQL の Microsoft Entra 管理者ユーザーは azure_ad_admin ロールを所有します。 Microsoft Entra ID で認証できる新しいデータベース ユーザーを作成できるのは、azure_ad_admin ロールのみです。

  1. サーバー ビューの左側のナビゲーション ウィンドウにある [Active Directory 管理者] タブに移動し、Active Directory 管理者として自分 (または他のユーザー) を追加します。

    Screenshot showing how to set Active Directory admin.

  2. 必ず、AD 管理者ユーザー設定を保存してください。

    Screenshot showing how to save Active Directory admin user setting.

アクセス許可の付与手順を完了するために実行する必要がある手順の一覧については、こちらのドキュメントをご覧ください。

UserErrorMissingNetworkSecurityPermissions

サーバー ビューで [Azure サービスへのアクセス許可] フラグを有効にすることで、ネットワーク接続を確立ます。 サーバー ビューの [接続のセキュリティ] ペインで、 [Azure サービスへのアクセス許可] フラグを [はい] に設定します。

Note

このフラグを有効にする前に、 [パブリック ネットワーク アクセスの拒否] フラグを [いいえ] に設定したことを確認してください。

Screenshot showing how to allow access to Azure services.

UserErrorContainerNotAccessible

ファイルとして復元するときにストレージ アカウント コンテナーに復元するアクセス許可

  1. Azure portal を使用して、ストレージ アカウント コンテナーにアクセスするためのアクセス許可をバックアップ コンテナー MSI に付与します。

    1. [ストレージ アカウント] ->[アクセス制御] ->[ロールの割り当ての追加] にアクセスします。
    2. [ストレージ BLOB データ共同作成者] ロールをバックアップ コンテナー MSI に割り当てます。

    Screenshot showing the process to assign Storage Blob Data Contributor role.

  2. または、Azure CLI で az role assignment create コマンドを使用して、復元先の特定のコンテナーに詳細なアクセス許可を付与します。

    az role assignment create --assignee $VaultMSI_AppId  --role "Storage Blob Data Contributor"   --scope $id
    
    1. assignee パラメーターをコンテナーの MSI のアプリケーション ID に置き換え、scope パラメーターで特定のコンテナーを参照します。

    2. コンテナー MSI のアプリケーション ID を取得するには、 [アプリケーションの種類][すべてのアプリケーション] を選択します。

      Screenshot showing how to select All Applications.

    3. コンテナー名を検索し、アプリケーション ID をコピーします。

      Screenshot showing how to search for vault name.

UserErrorDBUserAuthFailed

Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 キー コンテナーにシークレット値の一部として格納されている資格情報が有効であることを確認してください。 指定したデータベース ユーザーにログイン アクセス権があることを確認してください。

UserErrorInvalidSecret

Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 指定されたシークレット名がキー コンテナーにあることをご確認ください。

UserErrorMissingDBPermissions

Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 このバックアップ インスタンスに関連するキー コンテナーは、バックアップ インスタンスにアクセスし、JSON ビューを選択することで見つかります。 以下のスクリーンショットに示すように、datasourceAuthCredentials セクションの下に、キー コンテナー名とシークレットの詳細が表示されます。

Screenshot showing how to search for key vault by using secret name.

UserErrorSecretValueInUnsupportedFormat

Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 しかし、シークレット値が Azure Backup でサポートされている形式ではありません。 こちらに記載されているサポートされる形式を確認してください。

UserErrorInvalidSecretStore

Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 指定されたキー コンテナーが存在すること、また、こちらに記載されたアクセス権がバックアップ サービスに割り当てられていることを確認してください。

UserErrorMissingPermissionsOnSecretStore

Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 こちらのドキュメントに従って、バックアップ コンテナーの MSI にキー コンテナーへのアクセス権が割り当てられていることを確認してください。

UserErrorDBNotFound

データベースおよび関連するサーバーが存在することを確認します。

UserErrorDatabaseNameAlreadyInUse

復元されたデータベースに指定された名前が既に存在するため、復元操作に失敗しました。 別の名前で復元操作を再試行してください。

UserErrorServerConnectionClosed

サーバーが予期せず接続を閉じたため、操作が失敗しました。 操作を再試行し、エラーが解決しない場合は、Microsoft サポートにお問い合わせください。

次のステップ

Azure Database for PostgreSQL のバックアップについて