Azure 개발자 CLI(azd)는 프로젝트 환경( .env 파일) 내에서 Azure Key Vault 비밀을 참조하는 것을 지원합니다. 이는 프로젝트의 azd에서 중요한 데이터를 다루기 위한 보안 옵션을 제공합니다. 이러한 비밀은 후크 및 CI/CD 파이프라인 구성과 같은 다양한 azd 기능과 통합됩니다.
사전 요구 사항
- Azure 개발자 CLI가 설치되었습니다.
- 액세스 권한이 있는 Azure Key Vault 인스턴스 또는 만들 수 있는 권한이 있어야 합니다.
Key Vault 비밀 설정
Key Vault 비밀을 설정하려면 환경에서 Key Vault 비밀을 참조하는 키가 포함된 azd env set-secret <name> 명령을 실행하십시오 <name>. 비밀을 azd 설정한 후 다음 시나리오에서 Key Vault에서 값을 자동으로 검색합니다.
Bicep 매개 변수
Bicep 매개 변수를 Azure Key Vault 비밀 값과 연결하려면 다음 단계를 수행합니다.
-
@secure()키워드를 사용하여 Bicep 매개변수를 보안으로 주석 처리합니다. - Bicep 매개 변수를 Azure Key Vault 비밀을 참조하는 환경의 키 이름에 연결하기 위한 매핑을
main.parameters.json파일에 생성합니다.
메모
Bicep 매개 변수 파일(.bicepparam)을 사용하는 경우 환경 비밀이 현재 지원되지 않습니다.
예시
azd 프로젝트에서 프롬프트를 실행하고 azd env set-secret MY_SECRET 따라 기존 Azure Key Vault 비밀을 선택하거나 새 비밀을 만듭니다. 명령이 완료되면 키 MY_SECRET 는 Key Vault 비밀에 대한 참조를 보유합니다. 사용하려는 값을 가진 Bicep 매개 변수를 추가하거나 선택하고, 해당 매개 변수를 안전한 것으로 지정합니다.
@secure()
param secureParameter string
main.parameters.json 파일에서 매핑을 만듭니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
다음에 azd up 또는 azd provision를 실행할 때, azd가 Azure Key Vault 시크릿을 매개변수 값으로 사용합니다.
후크
azd 는 후크가 실행되면 Azure Key Vault 비밀을 자동으로 검색할 수 있습니다. 기본적으로 후크를 실행하면 azd 프로젝트 환경( .env 파일)의 모든 키-값 쌍이 후크의 환경에서 설정됩니다. 그러나 Key Vault 비밀에 대한 참조는 해당 비밀 값으로 자동으로 해결되지 않습니다.
이러한 참조를 해결하려면 다음 단계를 수행합니다.
- 환경의 키에서 Key Vault의 비밀이 해결된 새 키로 매핑을 생성합니다.
-
secrets후크 정의의 필드를 사용하여 이 매핑을 만듭니다.
예시
azd 프로젝트에서 프롬프트를 실행하고 azd env set-secret MY_SECRET 따라 기존 Azure Key Vault 비밀을 선택하거나 새 비밀을 만듭니다. 명령이 완료되면 키 MY_SECRET 는 Key Vault 비밀을 참조합니다. 운영 체제에 적합한 후크 정의를 만듭니다.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
다음을 실행할 때 azd provision가 실행되면 preprovision 후크가 작동하여 MY_SECRET를 SECRET_RESOLVE로 변환합니다.
파이프라인 구성
azd 애플리케이션에 대한 CI(연속 통합)를 설정하는 프로세스를 간소화합니다. GitHub 또는 Azure DevOps를 사용하든 azd pipeline config를 실행하고 안내 단계를 따라 CI/CD를 구성합니다.
자동 구성 azd 의 일부로 CI/CD 배포 워크플로에 대한 비밀 및 변수를 만듭니다.
pipeline 구성에서 azure.yaml를 사용하여 고유한 변수와 비밀을 정의할 수도 있습니다. 정의한 이름은 사용자 azd 환경의 키(.env)에 해당합니다. 키에 비밀 참조(akvs) azd 가 있는 경우 변수 또는 비밀로 추가할지 여부에 따라 다른 동작을 적용합니다.
| 접근법 | 저장된 CI/CD 값 | 비밀 회전 | 적합한 대상 |
|---|---|---|---|
variables |
Key Vault 참조 (akvs://...) |
자동 - 파이프라인은 항상 Key Vault에서 최신 값을 읽습니다. | CI/CD 서비스 주체에 Key Vault 읽기 권한이 있는 경우 |
secrets |
실제 비밀 값 | 수동 - 회전 후 다시 실행 azd pipeline config 합니다. |
Key Vault 읽기 권한을 서비스 주체에 할당할 수 없는 경우 |
메모
사용하는 variablesazd 경우 CI/CD 워크플로에서 사용하는 서비스 주체에 읽기 액세스 역할을 할당하려고 시도합니다. Key Vault에 대한 읽기 역할을 할당할 수 있는 충분한 권한이 없으면 작업이 실패합니다.
secrets를 대신 사용하세요.
예시
초기화된 azd 프로젝트에서 프롬프트를 실행하고 azd env set-secret SECURE_KEY 따릅니다. 명령이 완료되면 참조를 표시합니다. azd env get-values
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
azure.yaml에서 SECURE_KEY를 variables 또는 secrets 목록에 추가하세요.
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
name: your-project-name
pipeline:
variables:
- SECURE_KEY
azd pipeline config를 실행하면 SECURE_KEY이(가) Key Vault 참조를 값으로 사용하여 CI/CD 변수로 설정됩니다.
SECURE_KEY가 Bicep 입력 매개변수 또는 후크 정의에 매핑되는 경우, azd는 런타임에 비밀 값을 자동으로 해결합니다.