Azure Key Vault를 사용하여 패키지 서명
Visual Studio 2022 버전 17.8 미리 보기 2 이상에서는 Azure Key Vault의 인증서를 사용하여 UWP 및 데스크톱 앱 패키지에 서명할 수 있습니다. 이 도구는 선택한 인증서를 사용하여 암호화 서명을 위해 Azure Key Vault에 앱 패키지 다이제스트(해시)를 보냅니다. 그런 다음 서명된 다이제스트가 반환되고 로컬로 패키지에 연결됩니다.
Important
이 프로세스는 안전합니다. 인증서의 프라이빗 키는 Azure Key Vault를 벗어나지 않습니다.
필수 조건
- Azure 계정. 아직 Azure 계정이 없는 경우 여기에서 시작하세요.
- Azure Key Vault. 자세한 내용은 Key Vault 만들기를 참조하세요.
- Azure Key Vault로 가져온 유효한 패키지 서명 인증서입니다. Azure Key Vault에서 생성된 기본 인증서는 코드 서명에 사용할 수 없습니다. 패키지 서명 인증서를 만드는 방법에 대한 자세한 내용은 패키지 서명에 대한 인증서 만들기를 참조하세요.
인증서를 Key Vault로 가져오기
Key Vault에 인증서를 추가하는 것은 매우 간단합니다. 이 예에서는 UwpSigningCert라는 올바른 UWP 코드 서명 인증서를 추가합니다.
- Key Vault 속성 페이지에서 인증서를 선택합니다.
- 생성/가져오기를 클릭합니다.
- 인증서 만들기 화면에서 다음 값을 선택합니다.
- 인증서 생성 방법: 가져오기
- 인증서 이름: UwpSigningCert
- 인증서 파일 업로드: UwpSigningCert.pfx
- 인증서 암호 해독: 인증서가 암호로 보호된 경우 암호 필드에 제공합니다.
- 만들기를 클릭합니다.
참고 항목
이 자체 서명된 인증서는 관리자가 가져오고 신뢰하지 않는 한 Windows에서 신뢰하지 않습니다. 자체 서명된 인증서를 포함하여 모든 인증서를 안전하게 유지합니다.
Key Vault에 대한 액세스 정책 구성
액세스 정책을 사용하여 Key Vault 콘텐츠에 대한 액세스할 수 있는 사용자를 제어할 수 있습니다. Key Vault 액세스 정책은 키, 비밀 및 인증서에 대한 권한을 별도로 부여합니다. 사용자에게 키에만 액세스하고 비밀에는 액세스하지 못하게 할 수 있습니다. 키, 비밀 및 인증서에 대한 액세스 권한은 자격 증명 모음 수준에서 관리됩니다. 자세한 내용은 Azure Key Vault 보안을 참조하세요.
참고 항목
Azure 구독에서 Key Vault를 만들 때 구독의 Azure Active Directory 테넌트와 자동으로 연결됩니다. Key Vault에서 콘텐츠를 관리하거나 검색하려는 모든 사람은 Azure AD에 의해 인증되어야 합니다.
- Key Vault 속성 페이지에서 액세스 정책을 선택합니다.
- + 액세스 정책 추가를 선택합니다.
- 인증서 권한 드롭다운을 클릭하고 인증서 관리 작업에서 가져오기 및 목록 확인란을 선택합니다.
- 비밀 권한 드롭다운을 클릭하고 비밀 관리 작업에서 가져오기 및 목록 확인란을 선택합니다.
- 주체 선택을 클릭하고, 액세스 권한을 부여할 사용자를 검색하고, 선택을 클릭합니다.
- 추가를 클릭합니다.
- 저장을 클릭하여 변경 내용을 저장합니다.
참고 항목
사용자에게 주요 자격 증명 모음에 직접 액세스할 수 있도록 하는 것은 권장되지 않습니다. 원칙적으로, 사용자는 Azure AD 그룹에 추가되어야 하며, 그러면 이 그룹은 주요 자격 증명 모음에 액세스할 수 있습니다.
Visual Studio에서 Key Vault에서 인증서를 선택합니다.
Visual Studio에서 앱 패키지 만들기 마법사를 사용하여 앱 패키지에 서명하는 데 사용할 인증서를 선택할 수 있습니다. Azure Key Vault를 통해 패키지 서명 인증서를 선택할 수 있습니다. 인증서를 포함하는 Key Vault의 URI를 제공해야 하며, Visual Studio에서 인증된 Microsoft 계정에는 이에 액세스할 수 있는 올바른 권한이 있어야 합니다.
- Visual Studio에서 UWP 애플리케이션 또는 데스크톱 Windows 애플리케이션 패키징 프로젝트를 엽니다.
- 게시 ->패키지 ->앱 패키지 만들기...를 선택하여 앱 패키지 만들기 마법사를 엽니다.
- 배포 방법 선택 페이지에서 테스트용으로 로드를 선택합니다.
- 서명 방법 선택 페이지에서 Azure Key Vault에서 선택...을 클릭합니다.
- Azure Key Vault에서 인증서 선택 대화 상자가 나타나면 계정 선택기를 사용하여 액세스 정책을 구성한 계정을 선택합니다.
- Key Vault의 URI를 입력합니다. URI는 Key Vault의 개요 페이지에서 찾을 수 있으며 DNS 이름으로 식별됩니다.
- 메타데이터 보기 단추를 클릭합니다.
- 인증서의 로드가 완료된 후 목록에서 원하는 항목을 선택합니다(예: UwpSigningCert).
- 확인을 클릭합니다.
Azure Key Vault의 암호를 사용하여 인증서 암호 해독
로컬 암호로 보호된 인증서(.pfx)를 사용하여 앱 패키지에 서명하는 경우, 암호를 해독하는 데 사용되는 암호를 관리하기 어려울 수 있습니다. 앱 패키지 만들기 마법사에서 인증서를 가져올 때 암호를 수동으로 입력하라는 메시지가 표시됩니다. 또는 Azure Key Vault에서 암호를 선택하는 옵션이 있습니다.
- Visual Studio에서 UWP 애플리케이션 또는 데스크톱 Windows 애플리케이션 패키징 프로젝트를 엽니다.
- 게시 ->패키지 ->앱 패키지 만들기...를 선택하여 앱 패키지 만들기 마법사를 엽니다.
- 배포 방법 선택 페이지에서 테스트용으로 로드를 선택합니다.
- 서명 방법 선택 페이지에서 파일에서 선택...을 클릭합니다.
- 이 인증서는 암호로 보호되어 있습니다. 대화 상자가 표시되면 Key Vault에서 암호 선택을 클릭합니다.
- Azure Key Vault에서 암호 선택 대화 상자가 나타나면 계정 선택기를 사용하여 액세스 정책을 구성한 계정을 선택합니다.
- Key Vault의 URI를 입력합니다. URI는 Key Vault의 개요 페이지에서 찾을 수 있으며 DNS 이름으로 식별됩니다.
- 메타데이터 보기 단추를 클릭합니다.
- 암호의 로드가 완료된 후 목록에서 원하는 항목을 선택합니다(예: UwpSigningCertPassword).
- 확인을 클릭합니다.
CI/CD 시나리오에서 서명 사용
CI/CD 시나리오에서 서명을 사용하도록 설정하려면 DefaultAzureCredential을 사용하여 Azure Key Vault로 인증하도록 파이프라인을 구성해야 합니다. DefaultAzureCredential은 적절한 권한이 있는 경우 파이프라인 에이전트의 ID를 사용하여 Key Vault에 액세스하려고 합니다. 또는 인증에 사용할 서비스 주체 또는 관리 ID를 지정할 수 있습니다.