다음을 통해 공유


Azure CLI를 사용하여 Key Vault 관리

이 문서에서는 Azure CLI를 사용하여 Azure Key Vault 작업을 시작하는 방법을 설명합니다. 다음 사항에 대한 정보를 볼 수 있습니다.

  • Azure에서 강화된 컨테이너(볼트)를 만드는 방법
  • 키 자격 증명 모음에 키, 비밀 또는 인증서 추가
  • Microsoft Entra ID를 사용하여 애플리케이션 등록
  • 키 또는 비밀을 사용하도록 애플리케이션에 권한 부여
  • Key Vault 고급 액세스 정책 설정
  • HSM(하드웨어 보안 모듈) 작업
  • 키 보관소 및 연결된 키 및 비밀 삭제
  • 기타 Azure 플랫폼 간 명령줄 인터페이스 명령

Azure Key Vault는 대부분 지역에서 사용할 수 있습니다. 자세한 내용은 키 볼트 가격 책정 페이지를 참조하세요.

비고

이 문서에는 키 자격 증명 모음에서 키 또는 비밀을 사용하도록 애플리케이션에 권한을 부여하는 방법을 보여 주는 단계 중 하나가 포함된 Azure 애플리케이션을 작성하는 방법에 대한 지침이 포함되어 있지 않습니다.

Azure Key Vault에 대한 개요는 Azure Key Vault란?)을 참조하세요. Azure 구독이 없는 경우, 시작하기 전에 무료 계정을 만드십시오.

필수 조건

이 문서에서 Azure CLI 명령을 사용하려면 다음 항목이 있어야 합니다.

  • Microsoft Azure 구독. 아직 구독하지 않은 경우 평가판에 등록할 수 있습니다.
  • Azure CLI 버전 2.0 이상. 최신 버전을 설치하려면 Azure CLI 설치를 참조하세요.
  • 이 문서에서 만든 키 또는 암호를 사용하도록 구성되는 애플리케이션입니다. 샘플 애플리케이션은 Microsoft 다운로드 센터에서 사용할 수 있습니다. 자세한 내용은 포함된 추가 정보 파일을 참조하세요.

Azure 플랫폼 간 Command-Line 인터페이스에 대한 도움말 보기

이 문서에서는 사용자가 명령줄 인터페이스(Bash, 터미널, 명령 프롬프트)에 익숙하다고 가정합니다.

--help 또는 -h 매개 변수를 사용하여 특정 명령에 대한 도움말을 볼 수 있습니다. 또는 Azure 도움말 [명령] [옵션] 형식도 사용할 수 있습니다. 명령에 필요한 매개 변수에 대해 궁금한 경우 도움말을 참조하세요. 예를 들어 다음 명령은 모두 동일한 정보를 반환합니다.

az account set --help
az account set -h

Azure 플랫폼 간 Command-Line 인터페이스에서 Azure Resource Manager에 익숙해지려면 다음 문서를 참조할 수도 있습니다.

Azure에서 강화된 컨테이너(볼트)를 만드는 방법

자격 증명 모음은 하드웨어 보안 모듈의 지원을 받는 보안 컨테이너입니다. 금고는 애플리케이션의 비밀 정보를 중앙에서 관리하여 보안 정보의 우발적인 손실 가능성을 줄이는 데 도움이 됩니다. 또한 Key Vault는 저장된 모든 항목에 대한 액세스를 제어하고 기록합니다. Azure Key Vault는 강력한 인증서 수명 주기 관리 솔루션에 필요한 기능을 제공하여 TLS(전송 계층 보안) 인증서 요청 및 갱신을 처리할 수 있습니다. 다음 단계에서는 자격 증명 모음을 만듭니다.

구독에 연결

대화형으로 로그인하려면 다음 명령을 사용합니다.

az login

조직 계정을 사용하여 로그인하려면 사용자 이름과 암호를 전달할 수 있습니다.

az login -u username@___domain.com -p password

둘 이상의 구독이 있고 사용할 구독을 지정해야 하는 경우 다음을 입력하여 계정에 대한 구독을 확인합니다.

az account list

구독 매개 변수를 사용하여 구독을 지정합니다.

az account set --subscription <subscription name or ID>

Azure 플랫폼 간 Command-Line 인터페이스를 구성하는 방법에 대한 자세한 내용은 Azure CLI 설치를 참조하세요.

새 리소스 그룹 만들기

Azure Resource Manager를 사용하는 경우 모든 관련 리소스가 리소스 그룹 내에 만들어집니다. 기존 리소스 그룹에 키 볼트를 만들 수 있습니다. 새 리소스 그룹을 사용하려는 경우 새 리소스 그룹을 만들 수 있습니다.

az group create -n "ContosoResourceGroup" -l "East Asia"

첫 번째 매개 변수는 리소스 그룹 이름이고 두 번째 매개 변수는 위치입니다. 가능한 모든 위치 유형 목록을 가져오려면 다음을 수행합니다.

az account list-locations

Key Vault 리소스 공급자 등록

새 키 볼트를 만들려고 할 때 "구독이 'Microsoft.KeyVault' 네임스페이스를 사용하도록 등록되지 않았습니다." 오류가 표시될 수 있습니다. 해당 메시지가 표시되면 Key Vault 리소스 공급자가 구독에 등록되어 있는지 확인합니다. 이는 각 구독에 대한 일회성 작업입니다.

az provider register -n Microsoft.KeyVault

키 저장소 만들기

az keyvault create 명령을 사용하여 키 볼트를 만듭니다. 이 스크립트에는 리소스 그룹 이름, 키 자격 증명 모음 이름 및 지리적 위치의 세 가지 필수 매개 변수가 있습니다.

동아시아 지역에 있는 ContosoResourceGroup 리소스 그룹에 이름이 ContosoKeyVault인 새 자격 증명 모음을 만들려면 다음을 입력합니다.

az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --___location "East Asia"

이 명령의 출력에는 사용자가 만든 키 자격 증명 보관소의 속성이 표시됩니다. 가장 중요한 두 개의 속성은 다음과 같습니다.

  • 이름: 예제에서 이름은 ContosoKeyVault입니다. 다른 Key Vault 명령에 이 이름을 사용합니다.
  • vaultUri: 예제에서 URI는 .입니다 https://contosokeyvault.vault.azure.net. REST API를 통해 사용자 자격 증명 모음을 사용하는 애플리케이션은 URI를 사용해야 합니다.

이제 Azure 계정에 이 키 자격 증명 모음에 대한 모든 작업을 수행할 권한이 부여됩니다. 아직까지는 권한이 부여된 사용자가 없습니다.

키 자격 증명 모음에 키, 비밀 또는 인증서 추가

Azure Key Vault에서 소프트웨어로 보호되는 키를 만들려면 이 az key create 명령을 사용합니다.

az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software

.pem 파일에 기존 키가 있는 경우 Azure Key Vault에 업로드할 수 있습니다. 소프트웨어 또는 HSM을 사용하여 키를 보호하도록 선택할 수 있습니다. 이 예제에서는 "hVFkk965BuUv" 암호를 사용하여 .pem 파일에서 키를 가져와 소프트웨어로 보호합니다.

az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software

이제 URI를 사용하여 Azure Key Vault에 만들거나 업로드한 키를 참조할 수 있습니다. 항상 현재 버전을 가져오려면 https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey를 사용합니다. 이 특정 버전을 가져오려면 https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id>를 사용합니다. 예: https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87.

SQLPassword라는 이름의 암호로 값이 "hVFkk965BuUv"인 비밀을 보관소에 추가하여 Azure Key Vault에 저장합니다.

az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "

해당 URI를 사용하여 이 암호를 참조합니다. 항상 https://ContosoVault.vault.azure.net/secrets/SQLPassword을 사용하여 현재 버전을 가져오고, https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id>을 사용하여 이 특정 버전을 가져옵니다. 예: https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d.

.pem 또는 .pfx를 사용하여 인증서를 저장소로 가져오기.

az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"

만든 키, 비밀 또는 인증서를 살펴보겠습니다.

  • 키를 보려면 다음을 입력합니다.
az keyvault key list --vault-name "ContosoKeyVault"
  • 비밀을 보려면 다음을 입력합니다.
az keyvault secret list --vault-name "ContosoKeyVault"
  • 인증서를 보려면 다음을 입력합니다.
az keyvault certificate list --vault-name "ContosoKeyVault"

Microsoft Entra ID를 사용하여 애플리케이션 등록

이 단계는 일반적으로 개발자가 별도의 컴퓨터에서 수행합니다. Azure Key Vault와는 관련이 없지만 인식을 위해 여기에 포함되어 있습니다. 앱 등록을 완료하려면 계정, 보관소 및 애플리케이션이 동일한 Azure 디렉터리에 있어야 합니다.

키 자격 증명 모음을 사용하는 애플리케이션은 Microsoft Entra ID의 토큰을 사용하여 인증해야 합니다. 애플리케이션 소유자는 먼저 Microsoft Entra에 등록해야 합니다. 등록이 끝나면 애플리케이션 소유자는 다음 값을 가져옵니다.

  • 애플리케이션 ID(Microsoft Entra 클라이언트 ID 또는 appID라고도 함)
  • 인증 키(공유 암호라고도 함)입니다.

애플리케이션은 토큰을 가져오려면 Microsoft Entra ID에 이러한 값을 모두 제공해야 합니다. 토큰을 가져오도록 애플리케이션을 구성하는 방법은 애플리케이션에 따라 달라집니다. Key Vault 샘플 애플리케이션의 경우 애플리케이션 소유자는 app.config 파일에서 이러한 값을 설정합니다.

Microsoft Entra ID를 사용하여 애플리케이션을 등록하는 자세한 단계는 Microsoft Entra ID와 애플리케이션 통합, 포털을 사용하여 리소스에 액세스할 수 있는 Microsoft Entra 애플리케이션 및 서비스 주체 만들기, Azure CLI를 사용하여 Azure 서비스 주체 만들기 등의 문서를 검토해야 합니다.

Microsoft Entra ID에 애플리케이션을 등록하려면 다음을 수행합니다.

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.

키 또는 비밀을 사용하도록 애플리케이션에 권한 부여

애플리케이션에 금고의 키 또는 비밀에 액세스할 수 있는 권한을 부여하려면 az keyvault set-policy 명령을 사용합니다.

예를 들어 자격 증명 모음 이름이 ContosoKeyVault이고 자격 증명 모음의 키로 암호를 해독하고 서명하도록 애플리케이션에 권한을 부여하려면 애플리케이션 ID와 함께 다음 명령을 사용합니다.

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign

보안 저장소에서 비밀을 읽도록 동일한 애플리케이션에 권한을 부여하려면 다음 명령을 입력합니다.

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get

Key Vault 고급 액세스 정책 설정

키 자격 증명 모음에 대해 고급 정책을 사용하도록 설정하려면 az keyvault update를 사용합니다.

배포에 키 자격 증명 모음 사용: 가상 머신이 자격 증명 모음에서 비밀로 저장된 인증서를 검색할 수 있도록 허용합니다.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"

디스크 암호화를 위한 Key Vault 활성화: Azure Disk Encryption에 Key Vault를 사용할 때 필요합니다.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"

템플릿 배포에 Key Vault 사용: Resource Manager가 Key Vault에서 비밀을 검색할 수 있도록 허용합니다.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"

HSM(하드웨어 보안 모듈) 작업

추가 보증을 위해 HSM 경계를 벗어나지 않는 HSM(하드웨어 보안 모듈)에서 키를 가져오거나 생성할 수 있습니다. HSM은 FIPS 140의 유효성을 검사합니다. 이 요구 사항이 적용되지 않는 경우 이 섹션을 건너뛰고 키 자격 증명 모음 및 연결된 키 및 비밀 삭제로 이동합니다.

이러한 HSM 보호 키를 만들려면 HSM 보호 키를 지원하는 보관소 구독이 있어야 합니다.

keyvault를 만들 때 'sku' 매개 변수를 추가합니다.

az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --___location "East Asia" --sku "Premium"

이전에 보여준 대로 소프트웨어 보호 키와 HSM 보호 키를 이 보관소에 추가할 수 있습니다. HSM으로 보호되는 키를 만들려면 대상 매개 변수를 'HSM'으로 설정합니다.

az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"

다음 명령을 사용하여 컴퓨터의 .pem 파일에서 키를 가져올 수 있습니다. 이 명령은 Key Vault 서비스의 HSM으로 키를 가져옵니다.

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"

다음 명령은 BYOK("Bring Your Own Key") 패키지를 가져옵니다. 이렇게 하면 로컬 HSM에서 키를 생성하고, 키가 HSM 경계를 벗어나지 않고 Key Vault 서비스의 HSM으로 전송할 수 있습니다.

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"

이 BYOK 패키지를 생성하는 방법에 대한 자세한 지침은 Azure Key Vault에서 HSM-Protected 키를 사용하는 방법을 참조하세요.

키 보관소 및 연결된 키 및 비밀 삭제

키 자격 증명 모음 및 해당 키 또는 비밀이 더 이상 필요하지 않은 경우, az keyvault delete 명령을 사용하여 키 자격 증명 모음을 삭제할 수 있습니다.

az keyvault delete --name "ContosoKeyVault"

또는 키 자격 증명 모음 및 해당 그룹에 포함된 다른 리소스를 포함하는 전체 Azure 리소스 그룹을 삭제할 수 있습니다.

az group delete --name "ContosoResourceGroup"

기타 Azure 플랫폼 간 명령줄 인터페이스 명령

Azure Key Vault를 관리하는 데 유용할 수 있는 다른 명령입니다.

이 명령은 모든 키와 선택한 속성의 테이블 형식 표시를 나열합니다.

az keyvault key list --vault-name "ContosoKeyVault"

이 명령은 지정된 키에 대한 속성의 전체 목록을 표시합니다.

az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

이 명령은 모든 비밀 이름과 선택한 속성의 테이블 형식 표시를 나열합니다.

az keyvault secret list --vault-name "ContosoKeyVault"

다음은 특정 키를 제거하는 방법의 예입니다.

az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

다음은 특정 비밀을 제거하는 방법의 예입니다.

az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"

다음 단계