AzureKeyVault@2 - Azure Key Vault v2 작업
이 작업을 사용하여 인증 키, 스토리지 계정 키, 데이터 암호화 키와 같은 비밀을 다운로드합니다. PFX 파일 및 Azure Key Vault 인스턴스의 암호입니다. 이 작업을 사용하여 자격 증명 모음에서 비밀의 전체 또는 하위 집합의 최신 값을 가져와 파이프라인의 후속 작업에 사용할 수 있는 변수로 설정할 수 있습니다. 작업은 노드 기반이며 Linux, macOS 및 Windows의 에이전트에서 작동합니다.
통사론
# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
inputs:
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
KeyVaultName: # string. Required. Key vault.
SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
#RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.
입력
Azure 구독
입력 별칭: ConnectedServiceName
.
string
. 필수.
Azure Key Vault 인스턴스가 포함된 Azure 구독에 대한 서비스 연결을 선택하거나 새 연결을 만듭니다. 자세한알아보세요.
키 자격 증명 모음
string
. 필수.
다운로드할 비밀이 포함된 Azure Key Vault의 이름입니다.
SecretsFilter
-
비밀 필터
string
. 필수. 기본값: *
.
입력한 값에 따라 비밀 이름을 다운로드합니다. 이 값은 선택한 키 자격 증명 모음에서 모든 비밀을 다운로드하는 기본값 또는 비밀 이름의 쉼표로 구분된 목록일 수 있습니다.
RunAsPreJob
-
전체 작업 비밀을 사용할 수 있도록 설정
boolean
. 기본값: false
.
작업 실행이 시작되기 전에 작업을 실행합니다. 이 작업을 따르는 작업뿐만 아니라 작업의 모든 태스크에 비밀을 노출합니다.
작업 제어 옵션
모든 작업에는 작업 입력 외에도 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.
출력 변수
없음.
발언
버전 2.0의 새로운 기능: 비밀에 %5D %3B대한 지원이 추가되었습니다.
이 작업을 사용하여 인증 키, 스토리지 계정 키, 데이터 암호화 키와 같은 비밀을 다운로드합니다. PFX 파일 및 Azure Key Vault 인스턴스의 암호입니다. 이 작업을 사용하여 자격 증명 모음에서 비밀의 전체 또는 하위 집합의 최신 값을 가져와 파이프라인의 후속 작업에 사용할 수 있는 변수로 설정할 수 있습니다. 작업은 노드 기반이며 Linux, macOS 및 Windows의 에이전트에서 작동합니다.
Azure Key Vault에서 자격 증명을 가져오는 시점에 파이프라인에 forbidden
오류가 발생합니다.
Azure 키 자격 증명 모음에 필요한 권한이 없는 경우에 발생합니다. 이 문제를 해결하려면 올바른 권한이 있는 액세스 정책을 추가합니다.
필수 구성 요소
작업에는 다음과 같은 필수 구성 요소가 있습니다.
- Azure Resource Manager 서비스 연결사용하여 Azure Pipelines 또는 Team Foundation Server에 연결된 Azure 구독입니다.
- 비밀을 포함하는 Azure Key Vault.
키 자격 증명 모음을 만들 수 있습니다.
키 자격 증명 모음에 비밀을 추가합니다.
PowerShell cmdlet Set-AzKeyVaultSecret. 비밀이 없으면 이 cmdlet을 만듭니다. 비밀이 이미 있는 경우 이 cmdlet은 해당 비밀의 새 버전을 만듭니다.
Azure CLI를 사용하여 Key Vault에 비밀을 추가하려면(예: placeholderPassword값이
SQLPassword 비밀을 추가하려면 다음을 입력합니다. az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
비밀에 액세스하려는 경우:
Azure 서비스 연결에 자격 증명 모음에 대한 가져오기 및
목록 권한이있는지 확인합니다. Azure Portal 이러한 권한을 설정할 수 있습니다. - 자격 증명 모음에 대한
설정 블레이드를 열고Access 정책 선택한 다음 새추가. - 액세스 정책 추가 블레이드에서 보안 주체 선택하고 클라이언트 계정의 서비스 주체를 선택합니다.
액세스 정책 추가 블레이드에서비밀 권한을 선택하고 가져오기 및 목록 선택(체크)되었는지 확인합니다.- 확인 선택하여 변경 내용을 저장합니다.
- 자격 증명 모음에 대한
메모
Microsoft 호스팅 에이전트를 사용하는 경우 Microsoft 호스팅 에이전트의 IP 범위를 방화벽에 추가해야 합니다. 매주 수요일에 게시되는 주간 JSON 파일IP 범위의 주간 목록을 가져옵니다. 새 IP 범위는 다음 월요일에 적용됩니다. 자세한 내용은 microsoft 호스팅 에이전트
메모
값은 문자열로 검색됩니다. 예를 들어 connectionString비밀이 있는 경우 Azure Key Vault에서 가져온 각 비밀의 최신 값을 사용하여 connectionString
작업 변수가 만들어집니다. 이 변수는 후속 작업에서 사용할 수 있습니다.
자격 증명 모음에서 가져온 값이 인증서(예: PFX 파일)인 경우 작업 변수에는 문자열 형식의 PFX 내용이 포함됩니다. 다음 PowerShell 코드를 사용하여 작업 변수에서 PFX 파일을 검색할 수 있습니다.
$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
인증서 파일이 컴퓨터에 로컬로 저장되는 경우 암호를 사용하여 암호화하는 것이 좋습니다.
#Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)
자세한 내용은 Azure Key Vault 인증서시작하세요.
예제
자습서: YAML 파이프라인 Azure Key Vault 비밀 사용