Az - Key Vault

Support HackTricks

Basic Information

From the docs: Azure Key Vault는 비밀을 안전하게 저장하고 접근하기 위한 클라우드 서비스입니다. 비밀은 API 키, 비밀번호, 인증서 또는 암호화 키와 같이 접근을 엄격하게 제어하고자 하는 모든 것입니다. Key Vault 서비스는 두 가지 유형의 컨테이너를 지원합니다: 금고와 관리형 하드웨어 보안 모듈(HSM) 풀. 금고는 소프트웨어 및 HSM 지원 키, 비밀 및 인증서를 저장하는 것을 지원합니다. 관리형 HSM 풀은 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은 시스템에서 생성되며 객체의 고유한 버전을 지정하는 데 선택적으로 사용됩니다.

금고에 저장된 비밀에 접근하기 위해 두 가지 권한 모델을 사용할 수 있습니다:

  • 금고 접근 정책

  • Azure RBAC

Access Control

Key Vault 리소스에 대한 접근은 두 개의 평면에 의해 제어됩니다:

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

  • 키 금고 및 접근 정책을 관리하는 데 사용됩니다. Azure 역할 기반 접근 제어(RBAC)만 지원됩니다.

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

  • 키 금고 내의 데이터(키, 비밀 및 인증서)를 관리하고 접근하는 데 사용됩니다. 이는 키 금고 접근 정책 또는 Azure RBAC를 지원합니다.

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

Key Vault RBAC Built-In Roles

Network Access

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

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

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

이전 명령은 name-vault의 firewall 설정을 표시하며, 여기에는 활성화된 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