다음을 통해 공유


Azure Pipelines 무료 권한 부여에 대한 변경 내용

호스트된 에이전트의 증가하는 남용을 해결하기 위해 Azure Pipelines 무료 보조금을 획득하는 프로세스를 일시적으로 변경하고 있습니다. 기본적으로 Azure DevOps에서 만든 새 조직은 더 이상 동시 파이프라인을 무료로 부여받을 수 없습니다. 새 사용자는 이메일을 보내고 추가 정보를 제공하여 무료 CI/CD를 받아야 합니다.

자세한 내용은 아래 기능 목록을 확인하세요.

Azure Pipelines

Azure Repos

Azure Pipelines

Azure Pipelines 무료 권한 부여에 대한 변경 내용

Azure Pipelines는 몇 년 동안 퍼블릭 및 프라이빗 프로젝트에 무료 CI/CD를 제공해 왔습니다. 이는 무료 컴퓨팅을 제공하는 데 해당하기 때문에 항상 남용의 대상이었습니다( 특히 암호화 마이닝). 이러한 남용을 최소화하는 것은 항상 팀의 에너지를 빼앗아가고 있습니다. 지난 몇 달 동안 Azure DevOps의 새 프로젝트가 암호화 마이닝 및 기타 활동에서 악의적으로 분류되는 데 많이 사용되면서 상황은 상당히 악화되었습니다. 지난 한 달 동안 여러 서비스 인시던트가 이러한 남용으로 인해 발생하여 기존 고객의 대기 시간이 길어졌습니다.

이 상황을 해결하기 위해 Azure DevOps의 새 조직이 무료 보조금을 받을 수 있는 추가 단계를 추가했습니다. 다음 변경 내용은 즉시 적용됩니다.

  • 기본적으로 Azure DevOps에서 만든 새 조직은 더 이상 동시 파이프라인을 무료로 부여하지 않습니다. 이는 새 조직의 퍼블릭 프로젝트와 프라이빗 프로젝트에 모두 적용됩니다.
  • 무료 보조금을 요청하려면 요청을 제출하고 다음 세부 정보를 명확하게 제공합니다.
    • 이름
    • 무료 부여를 요청하는 Azure DevOps 조직
    • 퍼블릭 프로젝트 또는 프라이빗 프로젝트에 대한 무료 보조금이 필요한지 여부
    • 빌드하려는 리포지토리에 대한 링크(퍼블릭 프로젝트에만 해당)
    • 프로젝트에 대한 간략한 설명(퍼블릭 프로젝트에만 해당)

귀하의 요청을 검토하고 며칠 내에 응답할 것입니다.

참고 항목

이 변경 내용은 새 조직에만 영향을 줍니다. 기존 프로젝트 또는 조직에는 적용되지 않습니다. 이것은 당신이 얻을 수있는 무료 보조금의 양을 변경하지 않습니다. 그것은 단지 그 무료 보조금을 얻기 위해 추가 단계를 추가합니다.

이로 인해 CI/CD용 Azure Pipelines를 사용하려는 신규 고객이 불편을 드려 죄송합니다. 우리는 이것이 모든 고객에게 높은 수준의 서비스를 계속 제공하는 데 필요하다고 생각합니다. 남용을 방지하는 자동화된 방법을 계속 모색하고 남용을 방지하기 위한 신뢰할 수 있는 메커니즘이 있으면 이전 모델을 복원할 것입니다.

클래식 빌드에서 파이프라인별 보존 정책 제거

이제 Azure DevOps 프로젝트 설정에서 클래식 빌드 및 YAML 파이프라인에 대한 보존 정책을 구성할 수 있습니다. YAML 파이프라인에 대한 보존을 구성하는 유일한 방법이지만 파이프라인별로 클래식 빌드 파이프라인에 대한 보존을 구성할 수도 있습니다. 향후 릴리스에서는 클래식 빌드 파이프라인에 대한 파이프라인별 보존 규칙을 모두 제거할 예정입니다.

즉, 파이프라인별 보존 규칙이 여전히 있는 클래식 빌드 파이프라인은 곧 프로젝트 수준 보존 규칙에 의해 제어됩니다.

이러한 파이프라인을 식별하는 데 도움이 되도록 이 릴리스에서 실행 목록 페이지의 맨 위에 배너를 표시하도록 변경 내용을 배포하고 있습니다.

빌드 보존 개선 사항

파이프라인별 보존 규칙을 제거하여 파이프라인을 업데이트하는 것이 좋습니다. 파이프라인에 특히 사용자 지정 규칙이 필요한 경우 파이프라인에서 사용자 지정 작업을 사용할 수 있습니다. 작업을 통해 보존 임대를 추가하는 방법에 대한 자세한 내용은 빌드, 릴리스 및 테스트 설명서에 대한 보존 정책 설정을 참조 하세요.

파이프라인의 환경 변수에 대한 새 컨트롤

Azure Pipelines 에이전트는 표준 출력에서 특수 로깅 명령을 검사하고 실행합니다. 이 setVariable 명령을 사용하여 변수를 설정하거나 이전에 정의된 변수를 수정할 수 있습니다. 이는 잠재적으로 시스템 외부의 행위자가 악용할 수 있습니다. 예를 들어 파이프라인에 ftp 서버의 파일 목록을 인쇄하는 단계가 있는 경우 ftp 서버에 액세스할 수 있는 사용자가 새 파일을 추가할 수 있습니다. 이 파일의 이름에는 명령이 포함 setVariable 되고 파이프라인의 동작이 변경됩니다.

파이프라인에서 로깅 명령을 사용하여 변수를 설정하는 데 의존하는 많은 사용자가 있습니다. 이 릴리스에서는 명령의 원치 않는 사용 위험을 줄이기 위해 다음을 변경합니다 setVariable .

  • 작업 작성자를 위한 새 구문을 추가했습니다. 태스크 작성자는 다음과 task.json같은 코드 조각을 포함하여 태스크에서 변수를 설정할지 제어할 수 있습니다.
{
    "restrictions": {
        "commands": {
            "mode": "restricted"
        },
        "settableVariables": {
            "allowed": [
                "myVar",
                "otherVar"
            ]
        }
    },
}​ 
  • 또한 악용할 수 없도록 ssh와 같은 여러 기본 제공 작업을 업데이트하고 있습니다.

  • 마지막으로, 이제 YAML 구문을 사용하여 단계가 변수를 설정할 수 있는지 여부를 제어할 수 있습니다.

steps:
- script: echo hello
  target:
    settableVariables: none
steps:
- script: echo hello
  target:
    settableVariables:
    - things
    - stuff

포크 빌드에 대한 무제한 토큰 생성

GitHub 사용자는 일반적으로 포크를 사용하여 업스트림 리포지토리에 기여합니다. Azure Pipelines는 GitHub 리포지토리의 포크에서 기여를 빌드할 때 작업 액세스 토큰에 부여된 권한을 제한하며 이러한 작업에서 파이프라인 비밀에 액세스하는 것을 허용하지 않습니다. 빌드 포크의 보안에 대한 자세한 내용은 설명서에서 확인할 수 있습니다.

GitHub Enterprise Server 리포지토리의 포크를 빌드할 때는 기본적으로 동일한 제한이 적용됩니다. 이는 사용자가 내부 소스 공동 작업 모델의 혜택을 계속 누릴 수 있는 이러한 닫힌 환경에서 원하는 것보다 더 제한적일 수 있습니다. 포크에서 비밀을 사용할 수 있도록 파이프라인에서 설정을 구성할 수 있지만 작업 액세스 토큰 범위를 제어하는 설정은 없습니다. 이 릴리스에서는 포크 빌드에 대해서도 일반 작업 액세스 토큰을 생성할 수 있는 제어 기능을 제공합니다.

파이프라인 편집기에서 트리거에서 이 설정을 변경할 수 있습니다. 이 설정을 변경하기 전에 이 구성을 사용하도록 설정하면 보안에 미치는 영향을 완전히 이해해야 합니다.

포크 빌드에 대한 무제한 토큰 생성

Az, Azure 및 Azure RM 사전 설치된 모듈의 변경

보다 효율적인 지원 및 이미지 공간 사용을 위해 Az, Azure 및 AzureRM 모듈을 Ubuntu 및 Windows 호스팅 이미지로 사전 설치하는 프로세스를 업데이트하고 있습니다.

3월 29일 주간에는 최신 버전과 가장 인기 있는 버전을 제외한 모든 버전이 보관 파일로 저장되며 요청 시 Azure PowerShell 작업에 의해 추출됩니다. 자세한 변경 목록은 다음과 같습니다.

  1. Windows 이미지

    • 최신 버전(현재 5.5.0)을 제외한 모든 Az 모듈 버전이 보관됩니다.

    • 최신 모듈(현재 5.3.0) 및 2.1.0을 제외한 모든 Azure 모듈이 보관됩니다.

    • 최신 모듈(현재 6.13.1) 및 2.1.0을 제외한 모든 AzureRM 모듈이 보관됩니다.

  2. Ubuntu 이미지

    • 최신 Az 모듈(현재 5.5.0)을 제외한 모든 Az 모듈은 이미지에서 완전히 보관되거나 제거되며 요청 시 작업에 의해 설치됩니다.

호스트된 에이전트에서 기본 제공 Azure 작업을 사용하는 모든 파이프라인은 의도한 대로 작동하며 업데이트가 필요하지 않습니다. 이러한 작업을 사용하지 않는 경우 미리 설치된 모듈이 변경되지 않도록 파이프라인을 Azure PowerShell 작업을 사용하도록 전환합니다.

참고 항목

이러한 업데이트는 자체 호스팅 에이전트에서 실행되는 파이프라인에 영향을 미치지 않습니다.

Azure Repos

리포지토리 사용 안 함

고객은 종종 리포지토리를 사용하지 않도록 설정하고 사용자가 해당 콘텐츠에 액세스하지 못하도록 하는 방법을 요청했습니다. 예를 들어 다음과 같은 경우 이 작업을 수행할 수 있습니다.

  • 리포지토리에서 비밀을 찾았습니다.
  • 타사 검사 도구에서 리포지토리가 규정을 준수하지 않고 있는 것을 발견했습니다.

이러한 경우 문제를 해결하기 위해 작업하는 동안 리포지토리를 일시적으로 사용하지 않도록 설정할 수 있습니다. 이 업데이트를 사용하면 리포지토리 삭제 권한이 있는 경우 리포지 토리를 사용하지 않도록 설정할 수 있습니다. 리포지토리를 사용하지 않도록 설정하면 다음을 수행합니다.

  • 리포지토리 목록에 리포지토리를 나열할 수 있습니다.
  • 리포지토리의 내용을 읽을 수 없음
  • 리포지토리의 내용을 업데이트할 수 없음
  • 리포지토리가 Azure Repos UI의 리포지토리에 액세스하려고 할 때 비활성화되었다는 메시지를 참조하세요.

필요한 완화 단계를 수행한 후에는 리포지토리 삭제 권한이 있는 사용자가 리포 지토리를 다시 사용하도록 설정할 수 있습니다. 리포지토리를 사용하지 않거나 사용하도록 설정하려면 프로젝트 설정으로 이동하여 리포지토리를 선택한 다음 특정 리포지토리를 선택합니다.

리포지토리 사용 안 함

다음 단계

참고 항목

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

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

피드백을 제공하는 방법

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

제안하기

Stack Overflow에서 커뮤니티에서 조언과 질문에 답변할 수도 있습니다.

감사합니다,

비제이 마키라주