프로젝트 가시성을 퍼블릭 또는 프라이빗으로 변경

Azure DevOps Services

이 문서에서는 프로젝트의 가시성을 퍼블릭 또는 프라이빗으로 변경하는 방법을 알아봅니다.

프라이빗 프로젝트를 공개 표시 유형으로 전환하면 모든 콘텐츠가 포함됩니다. 특정 리포지토리, 영역 경로 또는 빌드 폴더를 비공개로 선택적으로 유지할 수 없습니다.

로그인하지 않은 사용자(익명 또는 공용 사용자라고도 함)에 대한 액세스가 제한됩니다. Azure DevOps에 로그인했지만 프로젝트에 포함되지 않은 사용자도 있습니다. 이러한 두 범주의 사용자에게는 다음 표에 설명된 대로 제한된 읽기 전용 액세스 권한이 부여됩니다.

프라이빗 프로젝트를 공용으로 전환하면 모든 프로젝트 멤버가 다음과 같은 변경 내용을 발생합니다.

  • 거부로 표시된 권한은 인식되지 않습니다. 비회원에게 자동으로 부여되는 권한은 프로젝트 멤버에게 할당할 수 있는 최소 수준의 기능을 설정합니다.
  • 빌드 파이프라인이 프로젝트 컬렉션 범위로 설정된 경우 프로젝트 범위로 실행되므로 악의적인 사용자가 빌드 서비스의 인증 토큰에 액세스할 위험이 줄어듭니다.
  • 관련자는 공개 프로젝트의 리포지토리 또는 코드 기능에 대한 모든 권한을 가지지만 프라이빗 프로젝트에는 액세스할 수 없습니다.
  • 관련자는 공개 프로젝트에서 Boards 또는 Work대한 모든 권한을 가지지만 프라이빗 프로젝트에서는 부분적으로만 액세스할 수 있습니다. 자세한 내용은 관련자 액세스 빠른 참조를 참조하세요.
  • 기본 + 테스트 계획 사용자는 테스트 계획 또는 테스트에서 테스트를 보고 실행할 수 있습니다. 기본 사용자는 액세스 수준을 기본 + 테스트 계획으로 업그레이드하여 테스트 계획을 만들고 테스트 사례를 추가하는 기능을 포함하여 모든 권한을 얻어야 합니다.
허브/설정 비회원 액세스 관련자 액세스 기본 액세스 읽기 권한자 액세스 참가자 액세스 프로젝트 관리 액세스
대시보드 읽기(많은 위젯을 사용할 수 없음) 부분 full 읽기 읽기, 쓰기 read-write-administer
Wiki 읽기 full full 읽기 읽기, 쓰기 read-write-administer
보드(작업) 읽기 부분 full 읽기 읽기, 쓰기 read-write-administer
리포지토리(코드) 읽기 full full 읽기 읽기, 쓰기 read-write-administer
파이프라인(빌드 및 릴리스) 읽기 full full 읽기 읽기, 쓰기 읽기-쓰기-관리ister
테스트 계획 액세스 없음 액세스 없음 부분 액세스(테이블 앞의 마지막 글머리 기호 참조) 읽기 읽기, 쓰기 읽기-쓰기-관리ister
알림 액세스 없음 전체 전체 읽기 읽기, 쓰기 read-write-administer
검색 full full full full full full
설정 권한 없음 전체 전체 읽음 읽음 읽기-쓰기-관리ister

필수 조건

  • Azure DevOps에 조직이 있어야 합니다.
  • Project Collection 관리istrators 그룹의 구성원이어야 합니다. 조직 소유자는 자동으로 이 그룹의 구성원입니다.
  • 공개 프로젝트에 대한 액세스 수준 및 사용할 수 없는 기능을 이해 합니다.
  • 부분 마이그레이션 옵션에 유의 하세요.
  • 마이그레이션 검사 목록의 항목을 검토합니다.

마이그레이션 검사 목록

대부분의 프라이빗 프로젝트에는 많은 양의 기록 데이터가 포함되어 있습니다. 이전 작업 항목, 초기 커밋 및 이전 빌드 파이프라인에는 공개적으로 공유하지 않으려는 정보가 포함될 수 있습니다.

다음 검사 목록은 프로젝트를 공개하기 전에 검토할 수 있는 항목을 나타냅니다. 또한 현재 및 미래의 콘텐츠만 노출할 수 있도록 작업 항목 또는 파일을 새 프로젝트로 마이그레이션하기 위한 팁을 제공합니다.

범주

지침

조직 ID 및 설정

사용자가 조직에 대한 다음 리소스 및 세부 정보에 액세스할 수 있음을 이해합니다.

  • ID: 조직에 추가된 모든 구성원 목록 및 각 구성원의 전자 메일 주소입니다.
  • 설정: 모든 조직 및 프로젝트 설정의 읽기 전용 보기입니다.
  • 프로세스 메타데이터: 조직의 모든 프로젝트에 있는 모든 선택 목록 값입니다.
  • 빌드 및 릴리스: 트리거한 사용자의 이름과 Git 커밋에 포함된 전자 메일 주소를 포함한 ID입니다.
  • 커밋 및 작업 항목: 이름, 성 및 전자 메일 주소와 같은 포함된 정보입니다.

프로젝트 간 개체 링크

프라이빗 프로젝트의 연결된 아티팩트 세부 정보가 공용 프로젝트 내에 표시되기 때문에 프로젝트 간에 링크가 있는지 확인합니다. 분기, 빌드, 변경 집합, 커밋, 빌드에서 찾은 커밋, 빌드, 끌어오기 요청 및 버전이 지정된 항목에 통합된 링크 유형을 사용할 수 있습니다. 제목과 이름은 버전이 지정된 항목, 분기, 위키 페이지, 끌어오기 요청 및 작업 항목과 같은 링크 유형에 노출됩니다.

Agile 도구 및 작업 항목

작업 항목(닫힌 항목)에도 공개되지 않은 보안 결함, 자격 증명 및 고객 데이터와 같은 중요한 세부 정보가 포함되지 않는지 확인합니다. 작업 항목은 프라이빗 프로젝트에서 퍼블릭 프로젝트로 마이그레이션될 때 해당 기록을 기본. 모든 토론 및 설명을 사용할 수 있습니다. 문제가 있는 음성이 없는지 확인합니다.

영역 경로에 특별한 잠금 보안 설정이 없는지 확인합니다. 거부된 권한은 공용 프로젝트에 적용되지 않으므로 제한된 영역 경로가 공용이 됩니다.

코드

배포할 권한이 없는 패치되지 않은 보안 버그, 자격 증명 및 코드와 같이 리포지토리 기록에 중요한 세부 정보가 없는지 확인합니다.

모든 파일 콘텐츠 및 커밋 메시지 사용할 수 있습니다. 문제가 있는 음성이 없는지 확인합니다. 전체 리포지토리를 노출하는 것이 불편하면 팁을 다른 프로젝트로 마이그레이션할 수 있습니다. 자세한 내용은 팁 마이그레이션 지침을 참조하세요.

빌드 및 릴리스

자격 증명/비밀, 모호한 URL 및 프라이빗 환경 이름 등 중요한 데이터를 노출하는 파이프라인이 없는지 확인합니다.

비회원에게 프라이빗 피드에 액세스할 필요가 없는지 확인합니다. 빌드는 피드에 계속 액세스할 수 있지만 비회원은 액세스할 수 없습니다. 빌드 파이프라인을 새 프로젝트로 마이그레이션해야 하는 경우 YAML을 사용하여 파이프라인을 가져오고 내보낼 수 있습니다.

Test

공용 프로젝트의 비회원은 수동 및 클라우드 부하 테스트 기능을 사용할 수 없다는 것을 이해합니다.

분석 및 대시보드

공용용 대시보드를 빌드하는 것이 좋습니다. 일부 위젯은 비회원에게 사용할 수 없습니다 .

아티팩트

프로젝트 범위가 지정된 피드의 패키지 중 어느 것도 개인 정보 보호 문제가 없는지 확인합니다. 프로젝트로 범위가 지정된 피드의 모든 패키지가 공개됩니다. 프로젝트가 공개되면 프로젝트로 범위가 지정된 피드의 모든 기존 업스트림 설정이 비활성화됩니다.

확장

프로젝트 환경에 중요한 확장이 있는지 확인합니다. 예를 들어 특정 방식으로 데이터를 렌더링하는 작업 항목 양식에 대한 컨트롤이 있나요? 중요한 세부 정보를 노출하는 사용자 지정 확장이 있나요?

각 확장의 작성자가 테스트하여 비회원에게 사용할 수 있도록 했음을 확인합니다. 그렇지 않은 경우 확장 작성자에게 비회원에 대한 지원을 추가하도록 요청합니다.

1. 프로젝트에 대한 익명 액세스 사용

프라이빗 프로젝트를 공용 프로젝트로 변경하려면 먼저 조직에 익명 액세스를 사용하도록 설정해야 합니다.

  1. 조직에 로그인합니다(https://dev.azure.com/{yourorganization}).

  2. 조직 설정을 선택합니다.

    Screenshot showing highlighted Organization settings button.

  3. 정책을 선택한 다음 공개 프로젝트 허용 보안 정책을 켭니다 .

    Screenshot showing Organization settings, Policy page, Security policies flow.

2. 프로젝트 표시 유형 설정

  1. 프로젝트에 로그인합니다(https://dev.azure.com/{YourOganization}{YourProject}).

  2. [프로젝트 설정>]>을 선택하고 [표시 유형] 드롭다운 메뉴에서 [공개 또는 비공개]를 선택한 다음[저장]을 선택합니다.

    Screenshot showing Project Settings, Overview, Visibility flow.

공개 프로젝트에 대한 액세스 수준 및 사용할 수 없는 기능

프로젝트 멤버는 할당된 액세스 수준에 따라 기능에 액세스할 수 있습니다. 비회원/공용 사용자에게는 자동으로 제한된 액세스 권한이 부여됩니다. 공용 프로젝트에 기여하려면 해당 프로젝트의 구성원으로 추가되고 이해 관계자, 기본 또는 기본 + 테스트 계획 액세스 권한이 할당되어야 합니다. 액세스 수준에 따라 액세스할 수 있는 사용자 인터페이스가 결정됩니다. 할당된 보안 그룹은 실행할 수 있는 기능을 결정합니다. 자세한 내용은 액세스 수준 정보를 참조 하세요.

프라이빗 프로젝트에 대해 수행하는 것과 동일한 방식으로 프로젝트 멤버를 추가합니다. 외부 사용자를 프로젝트에 액세스하도록 초대하는 것이 무엇을 의미하는지 이해해야 합니다. 프로젝트를 만든 경우 Project 관리istrators 그룹에 자동으로 할당됩니다.

다음 사용자 인터페이스 요소는 비회원에 대해 숨겨집니다.

서비스

숨겨진 UI 요소

Boards

작업 항목을 사용할 수 있지만 백로그, 보드, 스프린트, 쿼리 및 계획은 숨겨집니다.

Repos

TFVC(Team Foundation 버전 제어) 리포지토리가 숨겨집니다.

Pipelines

빌드 및 릴리스를 사용할 수 있지만 라이브러리, 작업 그룹, 배포 그룹, 패키지 및 XAML 빌드 시스템은 숨겨집니다. 빌드 및 릴리스 파이프라인에 대한 파이프라인 및 작업 편집기를 사용할 수 없습니다. 공개 미리 보기에 있는 새 릴리스 페이지만 사용할 수 있습니다.

Test Plans

테스트 계획 및 관련 수동 및 클라우드 부하 테스트 기능은 숨겨집니다.

분석

분석 뷰는 숨겨져 있으며, 분석 OData 피드는 비회원에 대해 지원되지 않습니다. 일반적으로 Power BI 통합은 지원되지 않습니다.

설정

설정 및 관리 페이지가 숨겨집니다.

비회원은 다음 작업을 수행할 수 없습니다.

  • 파일, 작업 항목 및 파이프라인과 같은 아티팩트 편집 또는 만들기
  • 기존 아티팩트 즐겨찾기 및 팔로우
  • 프로젝트 구성원의 전자 메일 주소 및 기타 연락처 정보를 봅니다. 비회원은 이름과 그림만 볼 수 있습니다. 또한 ID별로 아티팩트 목록을 필터링합니다.
  • 동일한 조직의 두 공용 프로젝트 간에 전환합니다. 비회원은 URL을 사용하여 공용 프로젝트로 직접 이동해야 합니다.
  • 조직 전체에서 코드 또는 작업 항목 검색 수행

부분 마이그레이션

조직에 중요한 자료가 포함된 경우 공개 프로젝트 정책을 켜면 안 됩니다. 퍼블릭 프로젝트를 호스트하는 완전히 별도의 조직을 만드는 것이 좋습니다.

작업 항목을 프라이빗 프로젝트로 이동

작업 항목이 중요한 경우 별도의 프라이빗 프로젝트로 이동할 수 있습니다. 프로젝트 간 링크는 멤버에 대해 계속 작동하지만 비공개 프로젝트에 있기 때문에 비회원은 콘텐츠에 액세스할 수 없습니다.

중요한 작업 항목이 많은 경우 현재 프로젝트를 비공개로 유지하는 것이 좋습니다. 대신 다른 조직에서 새 공용 프로젝트를 만듭니다. 작업 항목 마이그레이션은 Microsoft에서 기본 오픈 소스 WiMigrator를 사용하여 수행할 수 있습니다.

Git 팁만 마이그레이션

문제가 있는 기록으로 인해 리포지토리를 공유할 수 없는 경우 다른 프로젝트의 새 리포지토리로 팁 전용 마이그레이션을 수행하는 것이 좋습니다. 문제가 있는 리포지토리가 포함된 프로젝트를 비공개로 유지합니다. 공개할 필요가 없는 프로젝트에서 새 리포지토리를 만듭니다.

Warning

  • 새 리포지토리는 이전 리포지토리에 연결되지 않습니다.
  • 나중에 변경 내용을 쉽게 마이그레이션할 수 없습니다.
  • 끌어오기 요청 기록은 마이그레이션되지 않습니다.
  1. 기존 리포지토리 복제: git clone <clone_URL>.
  2. 리포지토리의 루트에 있는지 확인합니다 cd <reponame>. .
  3. 시작 git checkout main하려는 분기의 끝에 있는지 확인합니다. .
  4. Windows, rm -rf .git macOS 또는 Linux에서 Git 데이터를 rmdir /s .git 삭제합니다.
  5. 새 Git 리포지토리를 초기화합니다 git init.
  6. 공용 프로젝트에 비어 있는 새 리포지토리를 만듭니다.
  7. 새 리포지토리를 원본 원격으로 추가합니다 git remote add origin <new_clone_URL>.
  8. 새 리포지토리 푸시: git push --set-upstream origin main.

다음 단계