Az - Key Vault

支持 HackTricks

基本信息

来自文档: Azure Key Vault 是一个用于安全存储和访问机密的云服务。机密是您希望严格控制访问的任何内容,例如 API 密钥、密码、证书或加密密钥。Key Vault 服务支持两种类型的容器:vaults 和 managed hardware security module(HSM) pools。Vaults 支持存储软件和 HSM 支持的密钥、机密和证书。Managed HSM pools 仅支持 HSM 支持的密钥。有关完整详细信息,请参阅 Azure Key Vault REST API 概述

URL 格式https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version} 其中:

  • vault-name 是 key vault 的全局唯一名称

  • object-type 可以是 "keys", "secrets" 或 "certificates"

  • object-name 是 key vault 中对象的唯一名称

  • object-version 是系统生成的,可选用于指定对象的唯一版本

为了访问存储在 vault 中的机密,可以使用两种权限模型:

  • Vault access policy

  • Azure RBAC

访问控制

对 Key Vault 资源的访问由两个平面控制:

  • 管理平面,其目标是 management.azure.com

  • 用于管理 key vault 和访问策略。仅支持 Azure 基于角色的访问控制(RBAC)。

  • 数据平面,其目标是 <vault-name>.vault.azure.com

  • 用于管理和访问 key vault 中的数据(密钥、机密和证书)。这支持key vault 访问策略或 Azure RBAC

Contributor 这样的角色在管理平面上有权限管理访问策略,可以通过修改访问策略来获取机密的访问权限。

Key Vault RBAC 内置角色

网络访问

在 Azure Key Vault 中,可以设置防火墙规则以仅允许来自指定虚拟网络或 IPv4 地址范围的数据平面操作。此限制也会影响通过 Azure 管理门户的访问;如果用户的登录 IP 地址不在授权范围内,他们将无法列出 key vault 中的密钥、机密或证书。

要分析和管理这些设置,可以使用 Azure CLI:

az keyvault show --name name-vault --query networkAcls

前面的命令将显示 name-vault 的防火墙设置,包括启用的 IP 范围和拒绝流量的策略。

枚举

# Get keyvault token
curl "$IDENTITY_ENDPOINT?resource=https://vault.azure.net&api-version=2017-09-01" -H secret:$IDENTITY_HEADER

# Connect with PS AzureAD
## $token from management API
Connect-AzAccount -AccessToken $token -AccountId 1937ea5938eb-10eb-a365-10abede52387 -KeyVaultAccessToken $keyvaulttoken

# List vaults
Get-AzKeyVault
# Get secrets names from the vault
Get-AzKeyVaultSecret -VaultName <vault_name>
# Get secret values
Get-AzKeyVaultSecret -VaultName <vault_name> -Name <secret_name> –AsPlainText
支持 HackTricks

Last updated