변수 그룹 관리

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

이 문서에서는 Azure Pipelines에서 변수 그룹을 만들고 사용하는 방법을 설명합니다. 변수 그룹은 YAML 파이프라인에 전달하거나 프로젝트의 여러 파이프라인에서 사용할 수 있는 값과 비밀을 저장합니다.

변수 그룹의 비밀 변수는 보호되는 리소스입니다. 승인, 검사 및 파이프라인 권한의 조합을 추가하여 변수 그룹의 비밀 변수에 대한 액세스를 제한할 수 있습니다. 비보안 변수에 대한 액세스는 승인, 검사 또는 파이프라인 권한으로 제한되지 않습니다.

변수 그룹은 역할 및 권한에 대한 라이브러리 보안 모델을 따릅니다.

변수 그룹 만들기

프로젝트에서 파이프라인 실행에 대한 변수 그룹을 만들 수 있습니다.

참고 항목

Azure Key Vault의 비밀을 변수로 연결하는 비밀 변수 그룹을 만들려면 Azure Key Vault의 비밀 연결 지침에 따릅니다.

Azure Pipelines 사용자 인터페이스에서 변수 그룹을 만들 수 있습니다.

필수 조건

파이프라인 및 변수를 만들 수 있는 권한이 있는 Azure DevOps 조직 및 프로젝트입니다.

변수 그룹 만들기

  1. Azure DevOps 프로젝트의 왼쪽 메뉴에서 파이프라인>라이브러리를 선택합니다.

  2. 라이브러리 페이지에서 + 변수 그룹을 선택합니다.

    라이브러리 화면 및 변수 그룹 추가 단추의 스크린샷

  3. 새 변수 그룹 페이지의 속성 아래에서 변수 그룹에 대한 이름 및 선택적 설명을 입력합니다.

  4. 변수에서 + 추가를 선택한 다음 그룹에 포함할 변수 이름과 값을 입력합니다. 값을 암호화하고 안전하게 저장하려면 변수 옆에 있는 잠금 아이콘을 선택합니다.

  5. + 추가를 선택하여 각 새 변수를 추가합니다. 변수 추가를 마치면 저장을 선택합니다.

    변수 그룹을 구성하고 저장하는 스크린샷

이제 프로젝트 파이프라인에서 이 변수 그룹을 사용할 수 있습니다.

기존 Azure Key Vault에 연결되는 변수 그룹을 만들고 선택한 Key Vault 비밀을 변수 그룹에 매핑할 수 있습니다. 비밀 이름만 비밀 값이 아니라 변수 그룹에 매핑됩니다. 파이프라인은 변수 그룹에 대한 링크를 실행하여 자격 증명 모음에서 최신 비밀 값을 가져옵니다.

키 자격 증명 모음의 기존 비밀에 대한 변경 내용은 변수 그룹을 사용하는 모든 파이프라인에서 자동으로 사용할 수 있습니다. 그러나 비밀이 자격 증명 모음에 추가되거나 자격 증명 모음에서 삭제되는 경우 연결된 변수 그룹은 자동으로 업데이트되지 않습니다. 변수 그룹에 포함할 비밀을 명시적으로 업데이트해야 합니다.

Key Vault는 Azure에서 암호화 키 및 인증서 저장 및 관리를 지원하지만 Azure Pipelines 변수 그룹 통합은 키 자격 증명 모음 비밀 매핑만 지원합니다. 암호화 키 및 인증서는 지원되지 않습니다.

참고 항목

Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하는 키 자격 증명 모음은 지원되지 않습니다.

필수 조건

변수 그룹 만들기

  1. Azure DevOps 프로젝트에서 파이프라인>라이브러리>+ 변수 그룹을 선택합니다.
  2. 변수 그룹 페이지에서 변수 그룹에 대한 이름 및 선택적 설명을 입력합니다.
  3. Azure Key Vault의 링크 비밀을 변수 토글로 사용하도록 설정합니다.
  4. Azure 구독 엔드포인트 및 키 자격 증명 모음 이름을 선택합니다.
  5. 자격 증명 모음 이름 옆에 있는 권한을 선택하여 Azure DevOps가 키 자격 증명 모음에 액세스할 수 있도록 설정합니다.
  6. 비밀 선택 화면에서 자격 증명 모음에서 이 변수 그룹에 매핑할 특정 비밀을 선택한 다음 확인을 선택합니다.
  7. 저장을 선택하여 비밀 변수 그룹을 저장합니다.

Azure Key Vault 통합을 사용한 변수 그룹의 스크린샷.

참고 항목

Azure 서비스 연결에는 이전 단계에서 권한을 부여할 수 있는 키 자격 증명 모음에 대한 가져오기나열 권한이 있어야 합니다. 다음 단계를 수행하여 Azure Portal에서 이러한 권한을 제공할 수도 있습니다.

  1. 키 자격 증명 모음에 대한 설정을 연 다음 액세스 구성>을 선택하여 액세스 정책으로 이동합니다.
  2. 액세스 정책 페이지에서 Azure Pipelines 프로젝트가 최소한 가져오기나열 권한이 있는 애플리케이션 아래에 나열되지 않은 경우 만들기를 선택합니다.
  3. 비밀 권한에서 가져오기목록을 선택한 다음, 다음을 선택합니다.
  4. 서비스 주체를 선택한 다음, 다음을 선택합니다.
  5. 다음을 다시 선택하고 설정을 검토한 다음 만들기를 선택합니다.

자세한 내용은 Azure Key Vault 비밀 사용을 참조 하세요.

변수 그룹 업데이트

Azure Pipelines 사용자 인터페이스를 사용하여 변수 그룹을 업데이트할 수 있습니다.

  1. Azure DevOps 프로젝트의 왼쪽 메뉴에서 파이프라인>라이브러리를 선택합니다.
  2. 라이브러리 페이지에서 업데이트할 변수 그룹을 선택합니다. 변수 그룹 목록을 마우스로 가리키고 추가 옵션 아이콘을 선택한 다음 메뉴에서 편집을 선택할 수도 있습니다.
  3. 변수 그룹 페이지에서 속성을 변경한 다음 저장을 선택합니다.

변수 그룹 삭제

Azure Pipelines 사용자 인터페이스에서 변수 그룹을 삭제할 수 있습니다.

  1. Azure DevOps 프로젝트의 왼쪽 메뉴에서 파이프라인>라이브러리를 선택합니다.
  2. 라이브러리 페이지에서 삭제할 변수 그룹을 마우스로 가리키고 기타 옵션 아이콘을 선택합니다.
  3. 메뉴에서 삭제를 선택한 다음 확인 화면에서 삭제를 선택합니다.

변수 그룹의 변수 관리

Azure Pipelines 사용자 인터페이스를 사용하여 변수 그룹의 변수를 변경, 추가 또는 삭제할 수 있습니다.

  1. Azure DevOps 프로젝트의 왼쪽 메뉴에서 파이프라인>라이브러리를 선택합니다.
  2. 라이브러리 페이지에서 업데이트할 변수 그룹을 선택합니다. 변수 그룹 목록을 마우스로 가리키고 추가 옵션 아이콘을 선택한 다음 메뉴에서 편집을 선택할 수도 있습니다.
  3. 변수 그룹 페이지에서 다음을 수행할 수 있습니다.
    • 변수 이름 또는 값을 변경합니다.
    • 변수 이름 옆에 있는 가비지 캔 아이콘을 선택하여 변수를 삭제합니다.
    • 변수 값 옆에 있는 잠금 아이콘을 선택하여 변수를 비밀 또는 비보안으로 변경합니다.
    • + 추가를 선택하여 새 변수를 추가합니다.
  4. 변경한 후 저장을 선택합니다.

파이프라인에서 변수 그룹 사용

YAML 또는 클래식 파이프라인에서 변수 그룹을 사용할 수 있습니다. 변수 그룹에 대한 변경 내용은 변수 그룹이 연결된 모든 정의 또는 단계에서 자동으로 사용할 수 있습니다.

YAML 파이프라인에서 변수 그룹 사용

YAML 파이프라인에 변수 그룹을 사용하도록 권한을 부여한 후에는 파이프라인에서 변수 그룹 또는 변수를 사용할 수 있습니다.

변수 그룹을 사용하도록 YAML 파이프라인에 권한 부여

YAML 파이프라인에서 변수 그룹의 이름만 지정하는 경우 리포지토리에 코드를 푸시할 수 있는 모든 사용자는 변수 그룹의 비밀 콘텐츠를 추출할 수 있습니다. 따라서 YAML 파이프라인에서 변수 그룹을 사용하려면 그룹을 사용하도록 파이프라인에 권한을 부여해야 합니다. 클래식 파이프라인은 별도의 권한 부여 없이 변수 그룹을 사용할 수 있습니다.

Azure Pipelines 사용자 인터페이스를 사용하여 변수 그룹을 사용하도록 파이프라인에 권한을 부여할 수 있습니다.

  1. Azure DevOps 프로젝트의 왼쪽 메뉴에서 파이프라인>라이브러리를 선택합니다.
  2. 라이브러리 페이지에서 권한을 부여할 변수 그룹을 선택합니다.
  3. 변수 그룹 페이지에서 파이프라인 사용 권한 탭을 선택합니다.
  4. 파이프라인 사용 권한 화면에서 권한을 부여할 파이프라인을 선택한 + 다음 선택합니다. 또는 추가 작업 아이콘을 선택하고 액세스 열기를 선택한 다음 다시 열기 액세스를 선택하여 확인합니다.

파이프라인을 선택하면 해당 파이프라인에서 변수 그룹을 사용할 수 있는 권한이 부여됩니다. 다른 파이프라인에 권한을 부여하려면 아이콘을 + 다시 선택합니다. 열기 액세스를 선택하면 모든 프로젝트 파이프라인에서 변수 그룹을 사용할 수 있는 권한이 부여됩니다. 그룹에 비밀이 없는 경우 열기 액세스가 좋은 옵션일 수 있습니다.

변수 그룹에 권한을 부여하는 또 다른 방법은 파이프라인을 선택하고 편집을 선택한 다음 빌드를 수동으로 큐에 대기하는 것입니다. 리소스 권한 부여 오류가 표시되면 파이프라인을 변수 그룹의 권한 있는 사용자로 명시적으로 추가할 수 있습니다.

YAML 파이프라인에서 변수 그룹 사용

변수 그룹의 변수를 사용하려면 YAML 파이프라인 파일에서 그룹 이름에 대한 참조를 추가합니다. 그런 다음 파일의 변수 그룹에서 변수를 사용할 수 있습니다.

variables:
- group: my-variable-group

동일한 파이프라인에서 여러 변수 그룹을 참조할 수 있습니다. 여러 변수 그룹에 동일한 변수가 포함된 경우 파일의 변수를 사용하는 마지막 변수 그룹이 변수의 값을 설정합니다. 변수의 우선 순위에 대한 자세한 내용은 변수 확장을 참조 하세요.

템플릿에서 변수 그룹을 참조할 수도 있습니다. 다음 variables.yml 템플릿 파일은 변수 그룹을 my-variable-group참조합니다. 변수 그룹에는 .라는 myhello변수가 포함됩니다.

variables:
- group: my-variable-group

YAML 파이프라인은 variables.yml 템플릿을 참조하고 변수 그룹의 my-variable-group변수 $(myhello) 를 사용합니다.

stages:
- stage: MyStage
  variables:
  - template: variables.yml
  jobs:
  - job: Test
    steps:
    - script: echo $(myhello)

YAML 파이프라인에서 변수 그룹 변수 사용

파이프라인 내에서 정의한 변수에 액세스하는 것과 동일한 방식으로 연결된 변수 그룹의 변수 값에 액세스합니다. 예를 들어 파이프라인에 연결된 변수 그룹에 명명된 customer 변수의 값에 액세스하려면 작업 매개 변수 또는 스크립트에서 사용할 $(customer) 수 있습니다.

파이프라인 파일에서 독립 실행형 변수와 변수 그룹을 모두 사용하는 경우 독립 실행형 변수에 대한 구문을 사용합니다 name-value .

variables:
- group: my-variable-group
- name: my-standalone-variable
  value: 'my-standalone-variable-value'

변수 그룹의 변수를 참조하려면 매크로 구문 또는 런타임 식을 사용할 수 있습니다. 다음 예제에서 그룹에 my-variable-group 는 변수가 있습니다 myhello.

런타임 식을 사용하려면:

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello]
- script: echo $(my-passed-variable)

매크로 구문을 사용하려면 다음을 수행합니다.

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

암호화된 변수 및 키 자격 증명 모음 변수를 포함한 비밀 변수는 스크립트에서 직접 액세스할 수 없습니다. 이러한 변수를 작업에 인수로 전달해야 합니다. 자세한 내용은 비밀 변수를 참조 하세요.

클래식 파이프라인에서 변수 그룹 사용

클래식 파이프라인은 별도의 권한 부여 없이 변수 그룹을 사용할 수 있습니다. 변수 그룹을 사용하려면 다음을 수행합니다.

  1. 클래식 파이프라인을 엽니다.

  2. 변수 변수>그룹을 선택한 다음, 변수 그룹 연결을 선택합니다.

  3. 빌드 파이프라인에는 사용 가능한 그룹 목록이 표시됩니다. 변수 그룹을 파이프라인에 연결합니다. 그룹의 모든 변수는 파이프라인 내에서 사용할 수 있습니다.

    릴리스 파이프라인에는 파이프라인의 단계 드롭다운 목록도 표시됩니다. 변수 그룹을 파이프라인 자체 또는 릴리스 파이프라인의 하나 이상의 특정 단계에 연결합니다. 하나 이상의 스테이지에 연결하는 경우 변수 그룹의 변수는 이러한 스테이지로 범위가 지정되며 릴리스의 다른 단계에서는 액세스할 수 없습니다.

    변수 그룹 연결을 보여 주는 스크린샷

여러 범위에서 이름이 같은 변수를 설정하는 경우 다음 우선 순위가 가장 높은 우선 순위가 사용됩니다.

  1. 큐 시간에 설정된 변수
  2. 파이프라인의 변수 집합
  3. 변수 그룹의 변수 집합

변수의 우선 순위에 대한 자세한 내용은 변수 확장을 참조 하세요.

참고 항목

동일한 범위(예: 작업 또는 단계)의 파이프라인에 연결된 여러 그룹의 변수가 충돌하여 결과를 예측할 수 없습니다. 모든 변수 그룹에서 변수에 다른 이름을 사용하는지 확인합니다.