AzureKeyVault@2 - Azure Key Vault v2 작업

인증 키, 스토리지 계정 키, 데이터 암호화 키, 와 같은 비밀을 다운로드하려면 이 작업을 사용합니다. AZURE Key Vault 인스턴스의 PFX 파일 및 암호입니다. 태스크를 사용하여 자격 증명 모음에서 비밀의 전체 또는 하위 집합의 최신 값을 가져와서 파이프라인의 후속 작업에 사용할 수 있는 변수로 설정할 수 있습니다. 작업은 노드 기반이며 Linux, macOS 및 Windows의 에이전트에서 작동합니다.

Syntax

# 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.

입력

azureSubscription - Azure 구독
입력 별칭: ConnectedServiceName. string. 필수 요소.

Azure Key Vault 인스턴스가 포함된 Azure 구독에 대한 서비스 연결을 선택하거나 새 연결을 만듭니다. 자세히 알아보기.


KeyVaultName - 키 자격 증명 모음
string. 필수 요소.

다운로드할 비밀이 포함된 Azure Key Vault 이름입니다.


SecretsFilter - 비밀 필터
string. 필수 요소. 기본값은 *입니다.

입력한 값에 따라 비밀 이름을 다운로드합니다. 값은 선택한 키 자격 증명 모음에서 모든 비밀을 다운로드하는 기본값이거나 쉼표로 구분된 비밀 이름 목록일 수 있습니다.


RunAsPreJob - 전체 작업에서 비밀을 사용할 수 있도록 만들기
boolean. 기본값은 false입니다.

작업 실행이 시작되기 전에 작업을 실행합니다. 이 작업을 따르는 작업뿐만 아니라 작업의 모든 작업에 비밀을 노출합니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

버전 2.0의 새로운 기능: 비밀에서 %3B, %5D에 대한 지원이 추가되었습니다.

인증 키, 스토리지 계정 키, 데이터 암호화 키, 와 같은 비밀을 다운로드하려면 이 작업을 사용합니다. AZURE Key Vault 인스턴스의 PFX 파일 및 암호입니다. 태스크를 사용하여 자격 증명 모음에서 비밀의 전체 또는 하위 집합의 최신 값을 가져와서 파이프라인의 후속 작업에 사용할 수 있는 변수로 설정할 수 있습니다. 작업은 노드 기반이며 Linux, macOS 및 Windows의 에이전트에서 작동합니다.

forbidden Azure Key Vault 자격 증명을 가져오는 시점에 파이프라인에 오류가 발생합니다.

Azure 키 자격 증명 모음에 필요한 권한이 없는 경우 이 문제가 발생합니다. 이 문제를 해결하려면 올바른 권한이 있는 액세스 정책을 추가합니다.

사전 요구 사항

작업에는 다음과 같은 필수 구성 요소가 있습니다.

키 자격 증명 모음을 만들 수 있습니다.

키 자격 증명 모음에 비밀을 추가합니다.

  • PowerShell cmdlet Set-AzureKeyVaultSecret을 사용합니다. 비밀이 없으면 이 cmdlet이 만듭니다. 비밀이 이미 있는 경우 이 cmdlet은 해당 비밀의 새 버전을 만듭니다.

  • Azure CLI 사용 키 자격 증명 모음에 비밀을 추가하려면(예: 값이 PlaceholderPasswordSQLPassword라는 비밀) 다음을 입력합니다.

    az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
    

비밀에 액세스하려는 경우:

  • Azure 서비스 연결에 자격 증명 모음에 대한 가져오기나열 권한 이상이 있는지 확인합니다. Azure Portal 다음 권한을 설정할 수 있습니다.

    • 자격 증명 모음에 대한 설정 블레이드를 열고 액세스 정책을 선택한 다음, 새로 추가를 선택합니다.
    • 액세스 정책 추가 블레이드에서 보안 주체 선택을 선택하고 클라이언트 계정에 대한 서비스 주체를 선택합니다.
    • 액세스 정책 추가 블레이드에서 비밀 권한을 선택하고 가져오기목록이 선택되어 있는지 확인합니다(선택됨).
    • 확인을 선택하여 변경 내용을 저장합니다.

참고

Microsoft 호스트된 에이전트를 사용하는 경우 방화벽에 Microsoft 호스트된 에이전트의 IP 범위를 추가해야 합니다. 매주 수요일에 게시되는 주간 JSON 파일에서 IP 범위의 주간 목록을 가져옵니다. 새 IP 범위는 다음 월요일에 적용됩니다. 자세한 내용은 Microsoft 호스트된 에이전트를 참조하세요. Azure DevOps 조직에 필요한 IP 범위를 찾으려면 Microsoft 호스트된 에이전트의 가능한 IP 범위를 식별하는 방법을 알아봅니다.

참고

값은 문자열로 검색됩니다. 예를 들어 connectionString이라는 비밀이 있는 경우 Azure 키 자격 증명 모음에서 가져온 각 비밀의 최신 값으로 작업 변수 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 인증서 시작을 참조하세요.

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 2.182.1 이상
작업 범주 배포