Az - Key Vault

Support 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은 키 볼트의 전역적으로 고유한 이름입니다.

  • object-type은 "keys", "secrets" 또는 "certificates"일 수 있습니다.

  • object-name은 키 볼트 내에서 고유한 객체 이름입니다.

  • object-version은 시스템에서 생성되며 객체의 고유 버전을 지정하는 데 선택적으로 사용됩니다.

볼트에 저장된 비밀에 액세스하려면 두 가지 권한 모델을 사용할 수 있습니다:

  • Vault access policy

  • Azure RBAC

액세스 제어

Key Vault 리소스에 대한 액세스는 두 개의 평면에 의해 제어됩니다:

  • 관리 평면, 대상은 management.azure.com입니다.

  • 키 볼트 및 액세스 정책을 관리하는 데 사용됩니다. Azure 역할 기반 액세스 제어(RBAC)만 지원됩니다.

  • 데이터 평면, 대상은 **<vault-name>.vault.azure.com**입니다.

  • 키 볼트 내의 데이터(키, 비밀 및 인증서)를 관리하고 액세스하는 데 사용됩니다. 이는 key vault access policies 또는 Azure RBAC를 지원합니다.

Contributor와 같은 역할은 관리 평면에서 액세스 정책을 관리할 수 있는 권한을 가지고 있으며, 액세스 정책을 수정하여 비밀에 액세스할 수 있습니다.

Key Vault RBAC 내장 역할

네트워크 액세스

Azure Key Vault에서는 방화벽 규칙을 설정하여 지정된 가상 네트워크 또는 IPv4 주소 범위에서만 데이터 평면 작업을 허용할 수 있습니다. 이 제한은 Azure 관리 포털을 통한 액세스에도 영향을 미치며, 로그인 IP 주소가 허용된 범위 내에 있지 않으면 사용자는 키 볼트에서 키, 비밀 또는 인증서를 나열할 수 없습니다.

이 설정을 분석하고 관리하려면 Azure CLI를 사용할 수 있습니다:

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

이전 명령은 name-vault방화벽 설정을 표시하며, 여기에는 활성화된 IP 범위와 차단된 트래픽에 대한 정책이 포함됩니다.

Enumeration

# 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