[アーティクル] 01/02/2025
3 人の共同作成者
フィードバック
この記事の内容
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
この記事では、Azure Database for PostgreSQL フレキシブル サーバーのインスタンスに対してシステム割り当てマネージド ID を有効または無効にする方法について説明します。 また、1 つ以上のユーザー割り当てマネージド ID をインスタンスに追加または削除する方法についても説明します。
既存のサーバーのシステム割り当てマネージド ID を有効にする
Azure portal を使用して以下を実行します。
ポータルで目的のサーバーを探します (サーバーをまだ開いていない場合)。 これを行う 1 つの方法は、検索バーにサーバーの名前を入力することです。 一致する名前のリソースが表示されたら、そのリソースを選択します。
リソース メニューの [セキュリティ] で、[ID] を選択します。 次に、[システム割り当てマネージド ID] セクションで [オン] オプションを選択します。 [保存] を選択します。
プロセスが完了すると、システム割り当てマネージド ID が有効になっていることが通知されます。
az postgres flexible-server update コマンドには、システム割り当てマネージド ID を有効および無効にする組み込みのサポートはまだ提供されていません。 回避策として、az rest コマンドを使用して Servers - Update REST API を直接呼び出すことができます。
# Enable system assigned managed identity
subscriptionId=<subscription-id>
resourceGroup=<resource-group>
server=<server>
result=$(az postgres flexible-server show --resource-group $resourceGroup --name $server --query "identity.type" --output tsv)
if [ -z "$result" ]; then
az rest --method patch --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/$server?api-version=2024-08-01 --body '{"identity":{"type":"SystemAssigned"}}'
elif [ "$result" == "UserAssigned" ]; then
az rest --method patch --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/$server?api-version=2024-08-01 --body '{"identity":{"type":"SystemAssigned,UserAssigned"}}'
else
echo "System Assigned Managed identity is already enabled."
fi
既存のサーバーのシステム割り当てマネージド ID を無効にする
Azure portal を使用して以下を実行します。
ポータルで目的のサーバーを探します (サーバーをまだ開いていない場合)。 これを行う 1 つの方法は、検索バーにサーバーの名前を入力することです。 一致する名前のリソースが表示されたら、そのリソースを選択します。
リソース メニューの [セキュリティ] で、[ID] を選択します。 次に、[システム割り当てマネージド ID] セクションで [オフ] オプションを選択します。 [保存] を選択します。
プロセスが完了すると、システム割り当てマネージド ID が無効になっていることが通知されます。
az postgres flexible-server update コマンドには、システム割り当てマネージド ID を有効および無効にする組み込みのサポートはまだ提供されていません。 回避策として、az rest コマンドを使用して Servers - Update REST API を直接呼び出すことができます。
# Disable system assigned managed identity
subscriptionId=<subscription-id>
resourceGroup=<resource-group>
server=<server>
result=$(az postgres flexible-server show --resource-group $resourceGroup --name $server --query "identity.type" --output tsv)
if [ "$result" == "SystemAssigned" ]; then
az rest --method patch --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/$server?api-version=2024-08-01 --body '{"identity":{"type":"None"}}'
elif [ "$result" == "SystemAssigned,UserAssigned" ]; then
echo "System Assigned Managed identity cannot be disabled as the instance has User Assigned Managed identities assigned."
else
echo "System Assigned Managed identity is already disabled."
fi
システム割り当てマネージド ID を表示する
Azure portal を使用して以下を実行します。
ポータルで目的のサーバーを探します (サーバーをまだ開いていない場合)。 これを行う 1 つの方法は、検索バーにサーバーの名前を入力することです。 一致する名前のリソースが表示されたら、そのリソースを選択します。
リソース メニューの [概要] で、[JSON ビュー] を選択します。
開いた [リソース JSON] パネルで、[ID] プロパティを見つけます。その中に、システム割り当てマネージド ID の principalId と tenantId を見つけることができます。
# Show the system assigned managed identity
resourceGroup=<resource-group>
server=<server>
az postgres flexible-server identity list --resource-group $resourceGroup --server-name $server --query "{principalId:principalId, tenantId:tenantId}" --output table
システム割り当てマネージド ID を確認する
Azure portal を使用して以下を実行します。
ポータルでエンタープライズ アプリケーション サービスを見つけます (開いていない場合)。 これを行う 1 つの方法は、検索バーに名前を入力することです。 一致する名前のサービスが表示されたら、それを選択します。
[アプリケーションの種類 == マネージド ID] を選択します。
[プリケーションの名前またはオブジェクト ID で検索します] テキスト ボックスに、Azure Database for PostgreSQL フレキシブル サーバーのインスタンスの名前を指定します。
# Verify the system assigned managed identity
server=<server>
az ad sp list --display-name $server
ユーザー割り当てマネージド ID を既存のサーバーに関連付ける
この記事では、Azure Database for PostgreSQL フレキシブル サーバーの既存のインスタンスに関連付けるユーザー割り当てマネージド ID を作成済みであることを前提としています。
詳細については、Microsoft Entra ID でユーザー割り当てマネージド ID を管理する方法 に関するページを参照してください。
Azure Database for PostgreSQL フレキシブル サーバーのインスタンスには、必要な数のユーザー割り当てマネージド ID を関連付けることができます。
ポータルを使用してユーザー割り当てマネージド ID を Azure Database for PostgreSQL フレキシブル サーバーのインスタンスに関連付けることは、サポートされていません。
az postgres flexible-server identity assign コマンドを使用して、ユーザー割り当て ID を Azure Database for PostgreSQL フレキシブル サーバーのインスタンスに関連付けることができます。
# Associate user assigned managed identity
resourceGroup=<resource-group>
server=<server>
identity=<identity>
az postgres flexible-server identity assign --resource-group $resourceGroup --server-name $server --identity $identity
既存のサーバーのユーザー割り当てマネージド ID の関連付けを解除する
このサービスでは、Azure Database for PostgreSQL フレキシブル サーバーのインスタンスに関連付けられているユーザー割り当てマネージド ID の関連付け解除をサポートしています。
そのルールの例外は、暗号化キーへのアクセスに使用する必要があるものとして指定されたユーザー割り当てマネージド ID です。 このケースは、カスタマー マネージド キーを使用したデータ暗号化 を使用してデプロイされたサーバーでのみ発生する可能性があります。
ポータルを使用して Azure Database for PostgreSQL フレキシブル サーバーのインスタンスからユーザー割り当てマネージド ID の関連付けを解除することは、サポートされていません。
az postgres flexible-server identity remove コマンドを使用して、Azure Database for PostgreSQL フレキシブル サーバーのインスタンスからユーザー割り当て ID の関連付けを解除できます。
# Dissociate user assigned managed identity
resourceGroup=<resource-group>
server=<server>
identity=<identity>
az postgres flexible-server identity remove --resource-group $resourceGroup --server-name $server --identity $identity
データ暗号化キーへのアクセスに使用されるユーザー割り当てマネージド ID を削除しようとすると、次のエラーが表示されます。
Cannot remove identity <identity> because it's used for data encryption.
関連付けられているユーザー割り当てマネージド ID を表示する
Azure portal を使用して以下を実行します。
ポータルで目的のサーバーを探します (サーバーをまだ開いていない場合)。 これを行う 1 つの方法は、検索バーにサーバーの名前を入力することです。 一致する名前のリソースが表示されたら、そのリソースを選択します。
リソース メニューの [概要] で、[JSON ビュー] を選択します。
開いた [リソース JSON] パネルで、[ID] プロパティを見つけます。その中に、userAssignedIdentities を見つけることができます。 そのオブジェクトは 1 つ以上のキーと値のペアで構成されます。各キーは 1 つのユーザー割り当てマネージド ID のリソース識別子を表し、対応する値は、そのマネージド ID に関連付けられた principalId と clientId で構成されます。
# List all associated user assigned managed identities
resourceGroup=<resource-group>
server=<server>
az postgres flexible-server identity list --resource-group $resourceGroup --server-name $server --query "userAssignedIdentities"
関連するコンテンツ