使用 Azure CLI 为 Cosmos DB 数据库帐户禁用本地身份验证方法

Disable local authentication methods for Cosmos DB database accounts using Azure CLI

我正在尝试使用 Azure CLI 创建一个 cosmos DB 帐户。 我必须遵守的一项必要政策是 “Cosmos DB 数据库帐户应禁用本地身份验证方法”。在以下文档中,我看到了如何使用 Azure 资源管理器模板进行设置。见下文

"resources": [
    {
        "type": " Microsoft.DocumentDB/databaseAccounts",
        "properties": {
            "disableLocalAuth": true,
            // ...
        },
        // ...
    },
    // ...
 ]

现在我的问题是如何使用 AZ CLI 执行相同的操作?

我使用的命令是 => az cosmosdb create ...

我没有看到任何允许在 AZ CLI 中进行类似设置的标志。

,当您通过 az cosmosdb create

创建 Azure Cosmos DB 帐户时,Azure CLI 不支持此操作

截至 2022 年 1 月,这仅通过 ARM 模板支持,但计划支持 PS 和 CLI。目前没有可分享的预计到达时间。

您始终可以使用 Azure REST API 调用来应用 CosmosDB 帐户中的任何更改,请参阅此处

https://docs.microsoft.com/en-us/rest/api/cosmos-db-resource-provider/2021-10-15/database-accounts/create-or-update

我为此使用了 Postman,顺便说一下,我 post 这里有一个 CURL 示例,我可以通过它修改几个属性(你需要先获得一个 oauth2 令牌):

curl --location --request PUT 'https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-account-name>?api-version=2021-10-15' \
--header 'Authorization: Bearer <oauth2-token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "location": "North Europe",
    "properties": {
        "databaseAccountOfferType": "Standard",
        "disableLocalAuth": true,
        "disableKeyBasedMetadataWriteAccess":true,
        "locations": [
            {
                "isVirtualNetworkFilterEnabled": false,
                "locationName": "North Europe",
                "failoverPriority": 0,
                "isZoneRedundant": false
            }
        ]
    }
}'

az cosmosdb 命令不支持它,但您可以使用 az resource update 命令更新此 属性:

$cosmosdbname = "<cosmos-db-account-name>"
$resourcegroup = "<resource-group-name>"
$cosmosdb = az cosmosdb show --name $cosmosdbname --resource-group $resourcegroup | ConvertFrom-Json

az resource update --ids $cosmosdb.id --set properties.disableLocalAuth=true --latest-include-preview