다음을 통해 공유


보안 및 리포지토리 통합 강화

이 업데이트를 통해 Azure DevOps에서 보안 및 인증을 개선하고 있습니다. Azure DevOps OAuth에 대한 겹치는 비밀은 비밀 회전을 원활하게 만드는 반면 GitHub Advanced Security는 보안 개요 페이지로 더 나은 필터링을 제공하는 동시에 다중 리포지토리 게시가 종속성 및 코드 검사 경고를 올바르게 라우팅하도록 합니다.

Azure Pipelines에서 호스트된 이미지 업데이트에는 Ubuntu-24.04, Windows 2025 및 mac-OS 15 Sequoia가 포함되어 있어 보다 안전하고 안정적인 환경을 보장합니다.

자세한 내용은 릴리스 정보를 확인하세요.

일반

Azure DevOps를 위한 GitHub Advanced Security

  • 보안 개요 및 위험 페이지가 새 열과 필터링 옵션으로 강화되었습니다.
  • Azure DevOps용 GitHub Advanced Security에서 멀티 리포지토리 게시 시나리오를 지원합니다.
  • GitHub Advanced Security의 Azure DevOps 경고용 서비스 후크(미리 보기)
  • pnpm v9 지원이 GitHub 고급 보안을 통해 Azure DevOps 종속성 검사에 도입됩니다.

Azure Pipelines (애저 파이프라인스)

테스트 계획

일반

Azure DevOps OAuth에 대한 겹치는 비밀

보안을 강화하고 비밀 회전을 간소화하도록 설계된 Azure DevOps OAuth의 새로운 겹치는 비밀 기능을 도입하게 되어 기쁩니다. 이 기능을 사용하면 이전 암호가 활성 상태로 유지되는 동안 OAuth 클라이언트에 새 비밀을 추가하여 애플리케이션의 지속적인 작업을 보장할 수 있습니다. API 또는 Visual Studio 앱 페이지 UI를 통해 프로그래밍 방식으로 이러한 비밀을 관리할 수 있습니다.

지속적인 보안 개선의 일환으로 Azure DevOps OAuth는 2026년에 사용 중단될 예정입니다. Microsoft Entra ID OAuth로 마이그레이션하는 것이 향상된 보안 기능과 장기 투자를 위해 권장됩니다. 그 동안에는 새로운 겹치는 시크릿 기능을 사용하여 정기적으로 시크릿을 갱신하는 것이 좋습니다.

프로젝트 요약 페이지에서 언어 통계 태그 사용 중단

앞으로 몇 주 안에 프로젝트 요약 페이지에서 언어 통계 태그를 더 이상 사용하지 않을 예정입니다. 이러한 태그를 제거하면 성능을 최적화하는 데 도움이 되므로 로드 시간이 빨라지고 응답성이 뛰어난 인터페이스가 생성됩니다.

업데이트는 자동으로 수행되며 사용자 쪽에서 아무 작업도 수행하지 않습니다.

제거되는 태그의 스크린샷. 제거되는 태그의 스크린샷.

배달 계획 권한 추가됨

지속적인 보안 향상의 일환으로 프로젝트 레벨의 새로운 배달 계획 관리 권한을 도입했습니다. 이 변경 내용은 읽기 권한자 그룹의 사용자에 대한 의도하지 않은 읽기/쓰기 액세스를 방지하기 위해 구현되었습니다.

"배달 계획 관리 스크린샷"

Azure DevOps를 위한 GitHub Advanced Security

새 열 및 필터링 옵션으로 향상된 보안 개요 위험 페이지

위험 탭에서는 새로 추가된 열에 조직 전체의 새 보안 경고, 해결된 보안 경고 및 무시된 보안 경고가 표시됩니다. 프로젝트, 도구(비밀, 종속성 또는 코드 검색 결과)로 결과를 구체화하는 필터링 옵션과 검색 경계를 정의하는 시간 기반 필터를 추가했습니다.

또한 필터를 적용하면 URL 쿼리 매개 변수가 추가되므로 미리 필터링된 보기를 조직의 다른 사용자와 공유할 수 있습니다.

보안 개요 위험 페이지의 스크린샷. 보안 개요 위험 페이지의 스크린샷.

Azure DevOps용 GitHub Advanced Security에 지원되는 다중 리포지토리 게시 시나리오

이전에는 파이프라인 정의가 한 리포지토리에 보관되고 GitHub Advanced Security에서 검사할 소스 코드가 다른 리포지토리에 있을 때 결과가 처리되어 잘못된 리포지토리에 제출되었습니다. 소스 코드를 사용하여 리포지토리에 경고를 게시하는 대신 파이프라인이 정의된 리포지토리에 표시됩니다.

이제 종속성 검사와 코드 검색 모두 다중 리포지토리 시나리오에서 검색된 소스 코드를 포함하는 리포지토리로 경고를 올바르게 라우팅합니다.

이 기능을 활성화하려면 작업 디렉터리 내 리포지토리에서 게시할 리포지토리를 유추할 수 있도록 파이프라인 환경 변수를 설정하세요.

대안으로, 리포지토리를 명시적으로 체크 아웃하지 않거나 별칭을 사용하여 리포지토리를 체크 아웃하지 않는 경우에는 변수 advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['YourRepositoryAlias']) ]을(를) 활용합니다.

YAML 코드 조각:

  trigger:
  - main

resources:
  repositories:
    - repository: BicepGoat
      type: git
      name: BicepGoat
      ref: refs/heads/main
      trigger:
        - main

jobs:
  # Explicit - `advancedsecurity.publish.repository` explicitly defines the repository to submit SARIF to.
  - job: "AdvancedSecurityCodeScanningExplicit"
    displayName: "🛡 Infrastructure-as-Code Scanning (Explicit)"
    variables:
      advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['BicepGoat']) ]
    steps:
      - checkout: BicepGoat
      - task: TemplateAnalyzerSarif@1
        displayName: Scan with Template Analyzer
      - task: AdvancedSecurity-Publish@1
        displayName: Publish to IaC Scanning Results to Advanced Security


  # Infer - `advancedsecurity.publish.repository.infer` specifies that the `AdvancedSecurity-Publish` must
  # infer repository to submit SARIF to from the working directory on the build agent.
  - job: "AdvancedSecurityCodeScanningInfer"
    displayName: "🛡 Infrastructure-as-Code Scanning (Infer)"
    variables:
      advancedsecurity.publish.repository.infer: true
    steps:
      - checkout: BicepGoat
      - task: TemplateAnalyzerSarif@1
        displayName: Scan with Template Analyzer
      - task: AdvancedSecurity-Publish@1
        displayName: Publish to IaC Scanning Results to Advanced Security

Azure DevOps 경고를 위한 GitHub Advanced Security의 서비스 후크(미리 보기)

이제 다음을 포함하여 GitHub 고급 보안 경고 이벤트에 대한 서비스 후크를 구성할 수 있습니다.

  • 새로 만든 경고
  • 경고 데이터가 변경됨
  • 경고 상태가 변경됨

다른 리포지토리 이벤트와 마찬가지로 리포지토리 및 분기별로 필터링할 수 있습니다. 특히 경고의 경우 경고 유형(종속성, 코드 검색 또는 비밀)과 경고 심각도를 필터링할 수 있습니다.

경고 유형별 필터 스크린샷. 유형별 S 필터의 스크린샷.

프리뷰에 참여하려면 미리 보기 관심 양식을 작성하거나 이메일을 보내주세요.

pnpm v9 지원은 Azure DevOps 종속성 검사를 위한 GitHub 고급 보안에 제공됩니다.

pnpm v8이 4월 말에 수명이 종료되면 다음 종속성 검사 업데이트에는 pnpm v9에 대한 지원이 포함됩니다. 이 업데이트는 개발자 커뮤니티의 pnpm v9 지원 요청에 대한 응답입니다.

Azure Pipelines (애저 파이프라인스)

호스트된 이미지 업데이트

Azure Pipelines의 호스트된 에이전트를 안전하고 최신 상태로 유지하기 위해 업데이트를 배포하고 있습니다. 이러한 업데이트에는 Ubuntu-24.04, Windows 2025 이미지 및 macOS-15 Sequoia에 대한 지원을 추가하는 동시에 Ubuntu-20.04 및 Windows Server 2019와 같은 이전 이미지를 더 이상 사용하지 않는 것이 포함됩니다.

자세한 내용은 블로그 게시물방문하세요.

macOS-15 세쿼이아 일반 공급

macOS-15 이미지는 4월 1일부터 Azure Pipelines 호스팅 에이전트에서 사용할 수 있습니다. 이 이미지를 사용하려면 다음을 포함 vmImage:'macos-15'하도록 YAML 파일을 업데이트합니다.

- job: macOS15
  pool:
    vmImage: 'macOS-15'
  steps:
  - bash: |
      echo Hello from macOS Sequoia
      sw_vers

macOS-15가 설치된 소프트웨어는 이미지 구성참조하세요.

macOS-14 이미지는 macOS-latest을(를) 지정할 때 계속 사용됩니다. 4월에 macOS-latest을(를) 사용할 수 있도록 macOS-15(이)가 업데이트 될 예정입니다.

Windows-2025 이미지는 미리 보기로 제공됩니다.

windows-2025 이미지는 이제 Azure Pipelines 호스트된 에이전트에 프리뷰로 제공됩니다. 이 이미지를 사용하려면 다음을 포함 vmImage:'windows-2025'하도록 YAML 파일을 업데이트합니다.

- job: win2025
  pool:
    vmImage: 'windows-2025'
  steps:
  - pwsh: |
      Write-Host "(Get-ComputerInfo).WindowsProductName"
      Get-ComputerInfo | Select-Object WindowsProductName
      Write-Host "`$PSVersionTable.OS"
      $PSVersionTable.OS

Window Server 2025 설치된 소프트웨어는 이미지 구성참조하세요.

ubuntu-latest 파이프라인 이미지는 이제 ubuntu-24.04를 사용하게 됩니다.

앞으로 몇 주 안에 ubuntu-latest 지정하는 파이프라인 작업은 ubuntu-24.04대신 ubuntu-22.04 사용하기 시작합니다.

더 이상 ubuntu-24.04 이미지에 없는 도구를 사용하는 작업에 대한 지침은 블로그 게시물참조하세요. Ubuntu 22.04를 계속 사용하려면 ubuntu-22.04 이미지 레이블을 사용합니다.

- job: ubuntu2404
  pool:
    vmImage: 'ubuntu-24.04'
  steps:
  - bash: |
      echo Hello from Ubuntu 24.04
      lsb_release -d
  - pwsh: |
      Write-Host "`$PSVersionTable.OS"
      $PSVersionTable.OS

ubuntu-20.04 파이프라인 이미지는 더 이상 사용되지 않으며 4월 1일 사용 중지됩니다.

Azure Pipelines에서 Ubuntu 20.04 이미지에 대한 지원은 곧 종료될 예정이므로 더 이상 지원되지 않습니다. 블로그 게시물에서 브라운아웃 일정이 포함된 사용 중단 계획을 찾으세요.

Entra 발급자를 사용하는 워크로드 ID 페더레이션

불과 1년 전만 해도 워크로드 ID 페더레이션을일반 공급했습니다. 워크로드 ID 페더레이션을 사용하면 비밀 없이 서비스 연결을 구성할 수 있습니다. 서비스 연결을 뒷받침하는 ID(앱 등록, 관리 ID)는 ID의 페더레이션 자격 증명에 구성된 서비스 연결의 의도된 용도로만 사용할 수 있습니다.

이제 새 Azure 및 Docker 서비스 연결에 대한 페더레이션 자격 증명의 형식을 변경하고 있습니다. 기존 서비스 연결은 이전과 같이 작동합니다.

  Azure DevOps 발급자 Entra 발급처(새로운 서비스 연결)
발급자 https://vstoken.dev.azure.com/<organization id> https://login.microsoftonline.com/<Entra tenant id>/v2.0
주제 sc://<organization name>/<project name>/<service connection name> <entra prefix>/sc/<organization id>/<service connection id>

구성은 변경되지 않으며 토큰을 가져오는 방법은 동일하게 유지됩니다. 파이프라인 작업은 이전처럼 업데이트하고 작동할 필요가 없습니다.

서비스 연결을 만드는 단계는 변경되지 않으며 대부분의 경우 새 발급자를 볼 수 없습니다. Azure 서비스 연결을 수동으로 구성하는 경우 새 페더레이션 자격 증명이 표시됩니다.

FIC 예제의 스크린샷 FIC 예제의 스크린샷

앱 등록 또는 관리 ID에 대한 페더레이션 자격 증명을 만들 때 이전과 같이 이러한 값을 복사합니다.

자동화

REST API사용하여 자동화에서 서비스 연결을 만들 때 API에서 반환된 페더레이션 자격 증명을 사용합니다.

authorization.parameters.workloadIdentityFederationIssuer
authorization.parameters.workloadIdentityFederationSubject

마찬가지로 Terraform azuredevops 공급자를 사용하여 서비스 연결을 만들 때 azuredevops_serviceendpoint_azurerm 리소스는 workload_identity_federation_issuerworkload_identity_federation_subject 특성을 반환합니다.

추가 정보

Gradle@4 작업

Gradle 8.0지원하여 새 Gradle@4 작업이 만들어졌습니다. 기본 제공 코드 검사 옵션은 Gradle(으)로 시작하는 Gradle@4 작업에서 제거됩니다. 파이프라인에서 Gradle으로 코드 검사를 사용하려면 다음을 수행합니다.

  • build.gradle 파일에서 코드 검사 플러그 인을 지정합니다. 자세한 내용은 Gradle 코드 분석 옵션을 참조 하세요.
  • 작업 후 파이프라인에서 Gradle@4 작업을 사용합니다.

SonarQube 분석의 구성이 작업 SonarQube 또는 Prepare Analysis Configuration 확장으로 이동되었습니다.

실행할 스테이지를 요청한 사용자의 ID

YAML 파이프라인의 보안을 강화하기 위해 누가 실행할 스테이지를 요청했는지 알고 싶을 수 있습니다. 이러한 필요성을 해결하기 위해 Build.StageRequestedByBuild.StageRequestedById두 개의 미리 정의된 변수를 추가했습니다. 이러한 변수는 Build.RequestedForBuild.RequestedForId 변수와 비슷하지만 러닝이 아닌 단계에 해당합니다.

사용자가 사용자를 명시적으로 트리거하는 경우(예: 수동으로 트리거된 스테이지 또는 스테이지를 다시 실행한 경우) 해당 ID를 사용하여 두 변수를 채웁니다.

테스트 계획

코드 커버리지 결과 v2 작업 개선 사항 게시

이 릴리스에서는 v2 작업에 대한 몇 가지 개선 사항을 포함하고 있습니다.

  • .coverage,.covx,.covb,.cjson,.xml,.lcov 및 pycov1을 비롯한 다양한 코드 검사 형식에 대한 지원이 확장되었습니다.
  • 파일 이름, 포함/다루지 않는 줄 등과 같은 자세한 코드 검사 정보를 포함하는 포괄적인 cjson 파일(및 코드 검사 보고서)을 생성합니다.
  • Diff 범위(PR 커버리지) 지원: v2는 같은 파이프라인에서 여러 언어에 대한 diff 범위 PR 코멘트를 생성할 수 있습니다.
  • 이제 v2 작업은 v1 작업에서 지원되지 않는 빌드 품질 검사 작업을 지원합니다.

XLSX에서 사용자 지정 열을 사용하여 테스트 사례 내보내기

이제 XLSX에서 사용자 지정 열을 사용하여 테스트 사례를 내보낼 수 있습니다. 피드백에 따라 Test Plans는 사용자 지정 열을 사용하여 테스트 사례를 내보내는 기능을 지원하므로 공유하고 분석하는 데이터를 유연하게 제어할 수 있습니다. 이 향상된 기능을 통해 내보내는 정보가 적절하고 실행 가능한지 확인하여 필요에 맞게 내보내기를 조정할 수 있습니다.

다음 단계

비고

이러한 기능은 향후 2~3주 동안 출시될 예정입니다.

Azure DevOps로 이동하여 살펴보세요.

피드백을 제공하는 방법

이러한 기능에 대해 어떻게 생각하는지 듣고 싶습니다. 도움말 메뉴를 사용하여 문제를 보고하거나 제안을 제공합니다.

제안을 하세요

또한 Stack Overflow에서 커뮤니티로부터 조언을 얻고 질문에 대한 답변을 받을 수 있습니다.

감사

실비우안드리카