Vaults - Create Or Update

在指定的訂用帳戶中建立或更新金鑰保存庫。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}?api-version=2021-10-01

URI 參數

Name In Required Type Description
resourceGroupName
path True
  • string

伺服器所屬的資源群組名稱。

subscriptionId
path True
  • string

可唯一識別Microsoft Azure訂用帳戶的訂用帳號憑證。 訂用帳戶識別碼會構成每個服務呼叫 URI 的一部分。

vaultName
path True
  • string

保存庫名稱

Regex pattern: ^[a-zA-Z0-9-]{3,24}$

api-version
query True
  • string

用戶端 API 版本。

要求本文

Name Required Type Description
location True
  • string

應該在其中建立金鑰保存庫的支援 Azure 位置。

properties True

保存庫的屬性

tags
  • object

將指派給金鑰保存庫的標記。

回應

Name Type Description
200 OK

已建立或更新的保存庫

201 Created

已建立或更新的保存庫

Other Status Codes

描述作業失敗原因的錯誤回應。

範例

Create a new vault or update an existing vault
Create or update a vault with network acls

Create a new vault or update an existing vault

Sample Request

PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault?api-version=2021-10-01

{
  "location": "westus",
  "properties": {
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "sku": {
      "family": "A",
      "name": "standard"
    },
    "accessPolicies": [
      {
        "tenantId": "00000000-0000-0000-0000-000000000000",
        "objectId": "00000000-0000-0000-0000-000000000000",
        "permissions": {
          "keys": [
            "encrypt",
            "decrypt",
            "wrapKey",
            "unwrapKey",
            "sign",
            "verify",
            "get",
            "list",
            "create",
            "update",
            "import",
            "delete",
            "backup",
            "restore",
            "recover",
            "purge"
          ],
          "secrets": [
            "get",
            "list",
            "set",
            "delete",
            "backup",
            "restore",
            "recover",
            "purge"
          ],
          "certificates": [
            "get",
            "list",
            "delete",
            "create",
            "import",
            "update",
            "managecontacts",
            "getissuers",
            "listissuers",
            "setissuers",
            "deleteissuers",
            "manageissuers",
            "recover",
            "purge"
          ]
        }
      }
    ],
    "enabledForDeployment": true,
    "enabledForDiskEncryption": true,
    "enabledForTemplateDeployment": true,
    "publicNetworkAccess": "Enabled"
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
  "name": "sample-vault",
  "type": "Microsoft.KeyVault/vaults",
  "location": "westus",
  "tags": {},
  "systemData": {
    "createdBy": "keyVaultUser1",
    "createdByType": "User",
    "createdAt": "2020-01-01T12:00:00.0000000Z",
    "lastModifiedBy": "keyVaultUser2",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-01-01T12:00:00.0000000Z"
  },
  "properties": {
    "sku": {
      "family": "A",
      "name": "standard"
    },
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "networkAcls": {
      "bypass": "AzureServices",
      "defaultAction": "Deny",
      "ipRules": [
        {
          "value": ""
        }
      ],
      "virtualNetworkRules": [
        {
          "id": "",
          "ignoreMissingVnetServiceEndpoint": false
        }
      ]
    },
    "accessPolicies": [
      {
        "tenantId": "00000000-0000-0000-0000-000000000000",
        "objectId": "00000000-0000-0000-0000-000000000000",
        "permissions": {
          "keys": [
            "encrypt",
            "decrypt",
            "wrapKey",
            "unwrapKey",
            "sign",
            "verify",
            "get",
            "list",
            "create",
            "update",
            "import",
            "delete",
            "backup",
            "restore",
            "recover",
            "purge"
          ],
          "secrets": [
            "get",
            "list",
            "set",
            "delete",
            "backup",
            "restore",
            "recover",
            "purge"
          ],
          "certificates": [
            "get",
            "list",
            "delete",
            "create",
            "import",
            "update",
            "managecontacts",
            "getissuers",
            "listissuers",
            "setissuers",
            "deleteissuers",
            "manageissuers",
            "recover",
            "purge"
          ]
        }
      }
    ],
    "privateEndpointConnections": [
      {
        "id": "",
        "etag": "",
        "properties": {
          "provisioningState": "Succeeded",
          "privateEndpoint": {
            "id": ""
          },
          "privateLinkServiceConnectionState": {
            "status": "Approved",
            "actionsRequired": "None"
          }
        }
      }
    ],
    "enabledForDeployment": true,
    "enabledForDiskEncryption": true,
    "enabledForTemplateDeployment": true,
    "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000",
    "vaultUri": "https://sample-vault.vault.azure.net",
    "provisioningState": "Succeeded",
    "publicNetworkAccess": "Enabled"
  }
}
{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
  "name": "sample-vault",
  "type": "Microsoft.KeyVault/vaults",
  "location": "westus",
  "tags": {},
  "systemData": {
    "createdBy": "keyVaultUser1",
    "createdByType": "User",
    "createdAt": "2020-01-01T12:00:00.0000000Z",
    "lastModifiedBy": "keyVaultUser2",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-01-01T12:00:00.0000000Z"
  },
  "properties": {
    "sku": {
      "family": "A",
      "name": "standard"
    },
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "accessPolicies": [
      {
        "tenantId": "00000000-0000-0000-0000-000000000000",
        "objectId": "00000000-0000-0000-0000-000000000000",
        "permissions": {
          "keys": [
            "encrypt",
            "decrypt",
            "wrapKey",
            "unwrapKey",
            "sign",
            "verify",
            "get",
            "list",
            "create",
            "update",
            "import",
            "delete",
            "backup",
            "restore",
            "recover",
            "purge"
          ],
          "secrets": [
            "get",
            "list",
            "set",
            "delete",
            "backup",
            "restore",
            "recover",
            "purge"
          ],
          "certificates": [
            "get",
            "list",
            "delete",
            "create",
            "import",
            "update",
            "managecontacts",
            "getissuers",
            "listissuers",
            "setissuers",
            "deleteissuers",
            "manageissuers",
            "recover",
            "purge"
          ]
        }
      }
    ],
    "enabledForDeployment": true,
    "enabledForDiskEncryption": true,
    "enabledForTemplateDeployment": true,
    "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000",
    "vaultUri": "https://sample-vault.vault.azure.net",
    "provisioningState": "Succeeded",
    "publicNetworkAccess": "Enabled"
  }
}

Create or update a vault with network acls

Sample Request

PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault?api-version=2021-10-01

{
  "location": "westus",
  "properties": {
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "sku": {
      "family": "A",
      "name": "standard"
    },
    "networkAcls": {
      "defaultAction": "Deny",
      "bypass": "AzureServices",
      "ipRules": [
        {
          "value": "124.56.78.91"
        },
        {
          "value": "'10.91.4.0/24'"
        }
      ],
      "virtualNetworkRules": [
        {
          "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1"
        }
      ]
    },
    "enabledForDeployment": true,
    "enabledForDiskEncryption": true,
    "enabledForTemplateDeployment": true
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
  "name": "sample-vault",
  "type": "Microsoft.KeyVault/vaults",
  "location": "westus",
  "tags": {},
  "systemData": {
    "createdBy": "keyVaultUser1",
    "createdByType": "User",
    "createdAt": "2020-01-01T12:00:00.0000000Z",
    "lastModifiedBy": "keyVaultUser2",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-01-01T12:00:00.0000000Z"
  },
  "properties": {
    "sku": {
      "family": "A",
      "name": "standard"
    },
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "networkAcls": {
      "defaultAction": "Deny",
      "bypass": "AzureServices",
      "ipRules": [
        {
          "value": "124.56.78.91/32"
        },
        {
          "value": "'10.91.4.0/24'"
        }
      ],
      "virtualNetworkRules": [
        {
          "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1"
        }
      ]
    },
    "enabledForDeployment": true,
    "enabledForDiskEncryption": true,
    "enabledForTemplateDeployment": true,
    "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000",
    "vaultUri": "https://sample-vault.vault.azure.net"
  }
}
{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault",
  "name": "sample-vault",
  "type": "Microsoft.KeyVault/vaults",
  "location": "westus",
  "tags": {},
  "systemData": {
    "createdBy": "keyVaultUser1",
    "createdByType": "User",
    "createdAt": "2020-01-01T12:00:00.0000000Z",
    "lastModifiedBy": "keyVaultUser2",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2020-01-01T12:00:00.0000000Z"
  },
  "properties": {
    "sku": {
      "family": "A",
      "name": "standard"
    },
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "networkAcls": {
      "defaultAction": "Deny",
      "bypass": "AzureServices",
      "ipRules": [
        {
          "value": "124.56.78.91/32"
        },
        {
          "value": "'10.91.4.0/24'"
        }
      ],
      "virtualNetworkRules": [
        {
          "id": "/subscriptions/subid/resourcegroups/rg1/providers/microsoft.network/virtualnetworks/test-vnet/subnets/subnet1"
        }
      ]
    },
    "enabledForDeployment": true,
    "enabledForDiskEncryption": true,
    "enabledForTemplateDeployment": true,
    "hsmPoolResourceId": "00000000-0000-0000-0000-000000000000",
    "vaultUri": "https://sample-vault.vault.azure.net"
  }
}

定義

AccessPolicyEntry

可存取金鑰保存庫的身分識別。 陣列中的所有身分識別都必須使用與金鑰保存庫租使用者識別碼相同的租使用者識別碼。

ActionsRequired

訊息,指出服務提供者上的變更是否需要取用者的任何更新。

CloudError

來自金鑰保存庫資源提供者的錯誤回應

CloudErrorBody

來自金鑰保存庫資源提供者的錯誤回應

CreateMode

保存庫的建立模式,指出是否需要復原保存庫。

identityType

建立金鑰保存庫資源的身分識別類型。

IPRule

從特定 IP 位址或 IP 範圍控管保存庫協助工具的規則。

NetworkRuleAction

當 ipRules 和 virtualNetworkRules 沒有規則相符時,預設動作。 這只有在評估略過屬性之後才會使用。

NetworkRuleBypassOptions

告知哪些流量可以略過網路規則。 這可以是 'AzureServices' 或 'None'。 如果未指定,則預設值為 'AzureServices'。

NetworkRuleSet

一組規則,可控管保存庫的網路存取範圍。

Permissions

身分識別對於金鑰、秘密、憑證和儲存體的許可權。

PrivateEndpoint

私人端點物件屬性。

PrivateEndpointConnectionItem

私人端點連線專案。

PrivateEndpointConnectionProvisioningState

目前的布建狀態。

PrivateEndpointServiceConnectionStatus

私人端點線上狀態。

PrivateLinkServiceConnectionState

物件,表示私人連結連線的核准狀態。

Sku

SKU 詳細資料

SkuFamily

SKU 系列名稱

SkuName

用來指定金鑰保存庫是標準保存庫還是進階保存庫的 SKU 名稱。

SystemData

與金鑰保存庫資源建立和上次修改相關的中繼資料。

Vault

具有擴充詳細資料的資源資訊。

VaultCreateOrUpdateParameters

用於建立或更新保存庫的參數

VaultProperties

保存庫的屬性

VaultProvisioningState

保存庫的布建狀態。

VirtualNetworkRule

規則,控管來自特定虛擬網路之保存庫的存取範圍。

AccessPolicyEntry

可存取金鑰保存庫的身分識別。 陣列中的所有身分識別都必須使用與金鑰保存庫租使用者識別碼相同的租使用者識別碼。

Name Type Description
applicationId
  • string

代表主體提出要求的用戶端應用程式識別碼

objectId
  • string

保存庫Azure Active Directory租使用者中使用者、服務主體或安全性群組的物件識別碼。 存取原則清單的物件識別碼必須是唯一的。

permissions

身分識別對於金鑰、秘密和憑證的許可權。

tenantId
  • string

應該用來驗證金鑰保存庫要求的Azure Active Directory租使用者識別碼。

ActionsRequired

訊息,指出服務提供者上的變更是否需要取用者的任何更新。

Name Type Description
None
  • string

CloudError

來自金鑰保存庫資源提供者的錯誤回應

Name Type Description
error

來自金鑰保存庫資源提供者的錯誤回應

CloudErrorBody

來自金鑰保存庫資源提供者的錯誤回應

Name Type Description
code
  • string

錯誤碼。 這是可透過程式設計方式取用的助憶鍵。

message
  • string

使用者易記的錯誤訊息。 訊息通常會當地語系化,而且可能會隨服務版本而有所不同。

CreateMode

保存庫的建立模式,指出是否需要復原保存庫。

Name Type Description
default
  • string
recover
  • string

identityType

建立金鑰保存庫資源的身分識別類型。

Name Type Description
Application
  • string
Key
  • string
ManagedIdentity
  • string
User
  • string

IPRule

從特定 IP 位址或 IP 範圍控管保存庫協助工具的規則。

Name Type Description
value
  • string

CIDR 標記法中的 IPv4 位址範圍,例如 '124.56.78.91' (簡單的 IP 位址) 或 '124.56.78.0/24' (開頭為 124.56.78) 的所有位址。

NetworkRuleAction

當 ipRules 和 virtualNetworkRules 沒有規則相符時,預設動作。 這只有在評估略過屬性之後才會使用。

Name Type Description
Allow
  • string
Deny
  • string

NetworkRuleBypassOptions

告知哪些流量可以略過網路規則。 這可以是 'AzureServices' 或 'None'。 如果未指定,則預設值為 'AzureServices'。

Name Type Description
AzureServices
  • string
None
  • string

NetworkRuleSet

一組規則,可控管保存庫的網路存取範圍。

Name Type Description
bypass

告知哪些流量可以略過網路規則。 這可以是 'AzureServices' 或 'None'。 如果未指定,則預設值為 'AzureServices'。

defaultAction

當 ipRules 和 virtualNetworkRules 沒有規則相符時,預設動作。 這只有在評估略過屬性之後才會使用。

ipRules

IP 位址規則的清單。

virtualNetworkRules

虛擬網路規則的清單。

Permissions

身分識別對於金鑰、秘密、憑證和儲存體的許可權。

Name Type Description
certificates
  • string[]

憑證的許可權

keys
  • string[]

金鑰的許可權

secrets
  • string[]

秘密的許可權

storage
  • string[]

儲存體帳戶的許可權

PrivateEndpoint

私人端點物件屬性。

Name Type Description
id
  • string

私人端點資源的完整識別碼。

PrivateEndpointConnectionItem

私人端點連線專案。

Name Type Description
etag
  • string

每當私人端點連線的狀態有所變更時,即已修改。

id
  • string

私人端點連線的識別碼。

properties.privateEndpoint

私人端點物件的屬性。

properties.privateLinkServiceConnectionState

私人連結連線的核准狀態。

properties.provisioningState

私人端點連線的布建狀態。

PrivateEndpointConnectionProvisioningState

目前的布建狀態。

Name Type Description
Creating
  • string
Deleting
  • string
Disconnected
  • string
Failed
  • string
Succeeded
  • string
Updating
  • string

PrivateEndpointServiceConnectionStatus

私人端點線上狀態。

Name Type Description
Approved
  • string
Disconnected
  • string
Pending
  • string
Rejected
  • string

PrivateLinkServiceConnectionState

物件,表示私人連結連線的核准狀態。

Name Type Description
actionsRequired

訊息,指出服務提供者上的變更是否需要取用者的任何更新。

description
  • string

核准或拒絕的原因。

status

指出金鑰保存庫擁有者是否已核准、拒絕或移除連線。

Sku

SKU 詳細資料

Name Type Description
family

SKU 系列名稱

name

用來指定金鑰保存庫是標準保存庫還是進階保存庫的 SKU 名稱。

SkuFamily

SKU 系列名稱

Name Type Description
A
  • string

SkuName

用來指定金鑰保存庫是標準保存庫還是進階保存庫的 SKU 名稱。

Name Type Description
premium
  • string
standard
  • string

SystemData

與金鑰保存庫資源建立和上次修改相關的中繼資料。

Name Type Description
createdAt
  • string

金鑰保存庫資源建立 (UTC) 的時間戳記。

createdBy
  • string

建立金鑰保存庫資源的身分識別。

createdByType

建立金鑰保存庫資源的身分識別類型。

lastModifiedAt
  • string

上次修改金鑰保存庫資源的時間戳記 (UTC) 。

lastModifiedBy
  • string

上次修改金鑰保存庫資源的身分識別。

lastModifiedByType

上次修改金鑰保存庫資源的身分識別類型。

Vault

具有擴充詳細資料的資源資訊。

Name Type Description
id
  • string

金鑰保存庫資源的完整識別碼。

location
  • string

金鑰保存庫資源的 Azure 位置。

name
  • string

金鑰保存庫資源的名稱。

properties

保存庫的屬性

systemData

金鑰保存庫的系統中繼資料。

tags
  • object

指派給金鑰保存庫資源的標記。

type
  • string

金鑰保存庫資源的資源類型。

VaultCreateOrUpdateParameters

用於建立或更新保存庫的參數

Name Type Description
location
  • string

應建立金鑰保存庫的支援 Azure 位置。

properties

保存庫的屬性

tags
  • object

將指派給金鑰保存庫的標記。

VaultProperties

保存庫的屬性

Name Type Default Value Description
accessPolicies

0 到 1024 身分識別的陣列,可存取金鑰保存庫。 陣列中的所有身分識別都必須使用與金鑰保存庫租使用者識別碼相同的租使用者識別碼。 當 設定為 recovercreateMode ,不需要存取原則。 否則,需要存取原則。

createMode

保存庫的建立模式,指出是否需要復原保存庫。

enablePurgeProtection
  • boolean

屬性,指定是否為此保存庫啟用清除保護。 將此屬性設定為 true 可啟用保護,以防止清除此保存庫及其內容 - 只有金鑰保存庫服務可能會起始硬式且無法復原的刪除。 只有在同時啟用虛刪除時,設定才有效。 啟用這項功能是無法復原的,也就是說,屬性不接受 false 做為其值。

enableRbacAuthorization
  • boolean
False

控制資料動作授權方式的屬性。 若為 true,金鑰保存庫會使用角色型存取控制 (RBAC) 來授權資料動作,並忽略保存庫屬性中指定的存取原則。 若為 false,金鑰保存庫會使用保存庫屬性中指定的存取原則,而且會忽略儲存在 Azure Resource Manager上的任何原則。 如果未指定 Null,則會以預設值 false 建立保存庫。 請注意,管理動作一律會獲得 RBAC 的授權。

enableSoftDelete
  • boolean
True

屬性,指定是否為此金鑰保存庫啟用「虛刪除」功能。 如果建立新的金鑰保存庫時未設定為任何值 (true 或 false) ,則預設會將其設定為 true。 設定為 true 之後,就無法還原為 false。

enabledForDeployment
  • boolean

屬性,指定是否允許 Azure 虛擬機器從金鑰保存庫擷取儲存為秘密的憑證。

enabledForDiskEncryption
  • boolean

屬性,指定是否允許Azure 磁碟加密從保存庫擷取秘密和解除包裝金鑰。

enabledForTemplateDeployment
  • boolean

屬性,指定是否允許 Azure Resource Manager從金鑰保存庫擷取秘密。

hsmPoolResourceId
  • string

HSM 集區的資源識別碼。

networkAcls

從特定網路位置控管金鑰保存庫存取權的規則。

privateEndpointConnections

與金鑰保存庫相關聯的私人端點連線清單。

provisioningState

保存庫的布建狀態。

publicNetworkAccess
  • string
enabled

屬性,指定保存庫是否接受來自公用網際網路的流量。 如果設定為 [已停用] 除了私人端點流量之外,來自受信任服務的所有流量都會遭到封鎖。 這會覆寫設定的防火牆規則,這表示即使防火牆規則存在,我們也不會接受規則。

sku

SKU 詳細資料

softDeleteRetentionInDays
  • integer
90

softDelete 資料保留天數。 它會接受 > =7 和 < =90。

tenantId
  • string

應該用來驗證金鑰保存庫要求的Azure Active Directory租使用者識別碼。

vaultUri
  • string

保存庫的 URI,用於對金鑰和秘密執行作業。

VaultProvisioningState

保存庫的布建狀態。

Name Type Description
RegisteringDns
  • string
Succeeded
  • string

VirtualNetworkRule

規則,控管來自特定虛擬網路之保存庫的存取範圍。

Name Type Description
id
  • string

vnet 子網的完整資源識別碼,例如 '/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/subnet1'。

ignoreMissingVnetServiceEndpoint
  • boolean

屬性,指定 NRP 是否會忽略是否已設定 serviceEndpoints 父子網的檢查。