Azure Backup を使用した PostgreSQL データベースのバックアップのトラブルシューティング
この記事では、Azure Backup を使用した Azure PostgreSQL データベースのバックアップに関するトラブルシューティング情報を記載します。
UserErrorMSIMissingPermissions
バックアップ コンテナー MSI に対して、バックアップまたは復元する PG サーバーの読み取りアクセス権を付与します。
PostgreSQL データベースへのセキュリティで保護された接続を確立するために、Azure Backup では、マネージド サービス ID (MSI) 認証モデルが使用されます。 したがって、バックアップ コンテナーは、ユーザーによって明示的にアクセス許可が付与されているリソースにのみアクセスできます。
システム MSI は、作成時に自動的にコンテナーに割り当てられます。 このコンテナー MSI に、データベースのバックアップ元となる PostgreSQL サーバーへのアクセス権を付与する必要があります。
手順:
Postgres サーバーで、 [アクセス制御 (IAM)] ペインに移動します。
[ロールの割り当ての追加] を選択します。
開いた右側のコンテキスト ペインで、次の情報を入力します。
- ロール: ドロップダウン リストから [閲覧者] ロールを選択します。
- アクセスの割り当て先: ドロップダウン リストから [ユーザー、グループ、またはサービス プリンシパル] オプションを選択します。
- 選択: このサーバーとそのデータベースをバックアップする先のバックアップ コンテナーの名前を入力します。
- ロール: ドロップダウン リストから [閲覧者] ロールを選択します。
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 ロールのみです。
サーバー ビューの左側のナビゲーション ウィンドウにある [Active Directory 管理者] タブに移動し、Active Directory 管理者として自分 (または他のユーザー) を追加します。
必ず、AD 管理者ユーザー設定を保存してください。
アクセス許可の付与手順を完了するために実行する必要がある手順の一覧については、こちらのドキュメントをご覧ください。
UserErrorMissingNetworkSecurityPermissions
サーバー ビューで [Azure サービスへのアクセス許可] フラグを有効にすることで、ネットワーク接続を確立ます。 サーバー ビューの [接続のセキュリティ] ペインで、 [Azure サービスへのアクセス許可] フラグを [はい] に設定します。
Note
このフラグを有効にする前に、 [パブリック ネットワーク アクセスの拒否] フラグを [いいえ] に設定したことを確認してください。
UserErrorContainerNotAccessible
ファイルとして復元するときにストレージ アカウント コンテナーに復元するアクセス許可
Azure portal を使用して、ストレージ アカウント コンテナーにアクセスするためのアクセス許可をバックアップ コンテナー MSI に付与します。
- [ストレージ アカウント] ->[アクセス制御] ->[ロールの割り当ての追加] にアクセスします。
- [ストレージ BLOB データ共同作成者] ロールをバックアップ コンテナー MSI に割り当てます。
または、Azure CLI で az role assignment create コマンドを使用して、復元先の特定のコンテナーに詳細なアクセス許可を付与します。
az role assignment create --assignee $VaultMSI_AppId --role "Storage Blob Data Contributor" --scope $id
assignee パラメーターをコンテナーの MSI のアプリケーション ID に置き換え、scope パラメーターで特定のコンテナーを参照します。
コンテナー MSI のアプリケーション ID を取得するには、 [アプリケーションの種類] で [すべてのアプリケーション] を選択します。
コンテナー名を検索し、アプリケーション ID をコピーします。
UserErrorDBUserAuthFailed
Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 キー コンテナーにシークレット値の一部として格納されている資格情報が有効であることを確認してください。 指定したデータベース ユーザーにログイン アクセス権があることを確認してください。
UserErrorInvalidSecret
Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 指定されたシークレット名がキー コンテナーにあることをご確認ください。
UserErrorMissingDBPermissions
Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 このバックアップ インスタンスに関連するキー コンテナーは、バックアップ インスタンスにアクセスし、JSON ビューを選択することで見つかります。 以下のスクリーンショットに示すように、datasourceAuthCredentials セクションの下に、キー コンテナー名とシークレットの詳細が表示されます。
UserErrorSecretValueInUnsupportedFormat
Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 しかし、シークレット値が Azure Backup でサポートされている形式ではありません。 こちらに記載されているサポートされる形式を確認してください。
UserErrorInvalidSecretStore
Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 指定されたキー コンテナーが存在すること、また、こちらに記載されたアクセス権がバックアップ サービスに割り当てられていることを確認してください。
UserErrorMissingPermissionsOnSecretStore
Azure Backup サービスは、キー コンテナーにある資格情報を使用して、データベース ユーザーとしてデータベースにアクセスします。 対象となるキー コンテナーとシークレットは、バックアップの構成中に指定されます。 こちらのドキュメントに従って、バックアップ コンテナーの MSI にキー コンテナーへのアクセス権が割り当てられていることを確認してください。
UserErrorDBNotFound
データベースおよび関連するサーバーが存在することを確認します。
UserErrorDatabaseNameAlreadyInUse
復元されたデータベースに指定された名前が既に存在するため、復元操作に失敗しました。 別の名前で復元操作を再試行してください。
UserErrorServerConnectionClosed
サーバーが予期せず接続を閉じたため、操作が失敗しました。 操作を再試行し、エラーが解決しない場合は、Microsoft サポートにお問い合わせください。