다음을 통해 공유


Azure Machine Learning 작업에서 인증 자격 증명 비밀 사용

적용 대상: Python SDK azure-ai-ml v2(현재)

사용자 이름 및 암호와 같은 인증 정보는 비밀입니다. 예를 들어 학습 데이터를 쿼리하기 위해 외부 데이터베이스에 연결하는 경우 사용자 이름 및 암호를 원격 작업 컨텍스트에 전달해야 합니다. 이러한 값을 일반 텍스트의 학습 스크립트에 코딩하는 것은 잠재적으로 비밀을 노출하므로 안전하지 않습니다.

Azure Key Vault를 사용하면 비밀을 안전하게 저장하고 검색할 수 있습니다. 이 문서에서는 컴퓨팅 클러스터에서 실행되는 학습 작업에서 Key Vault에 저장된 비밀을 검색하는 방법을 알아봅니다.

Important

Azure Machine Learning Python SDK v2 및 기계 학습용 Azure CLI 확장 v2는 비밀을 설정하거나 가져오는 기능을 제공하지 않습니다. 대신 이 문서의 정보는 Python용 Azure Key Vault 비밀 클라이언트 라이브러리를 사용합니다.

필수 조건

이 문서의 단계를 수행하기 전에 다음과 같은 필수 구성 요소가 있는지 확인합니다.

이 섹션의 많은 필수 구성 요소에는 기여자, 소유자 또는 Azure 구독 또는 리소스가 포함된 Azure 리소스 그룹에 대한 동등한 액세스 권한이 필요합니다. Azure 관리자에게 문의하여 이러한 작업을 수행하도록 해야 할 수 있습니다.

  • Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다. Azure Machine Learning 평가판 또는 유료 버전을 사용해 보세요.

  • Azure Machine Learning 작업 영역 리소스가 없으면 시작하려면 리소스 만들기 문서의 단계에서 리소스를 만듭니다.

  • Azure Key Vault. 시작하려면 리소스 만들기 문서를 사용하여 작업 영역을 만든 경우 키 자격 증명 모음이 만들어집니다. 빠른 시작: Key Vault 만들기 문서의 정보를 사용하여 별도의 Key Vault 인스턴스를 만들 수도 있습니다.

    작업 영역과 동일한 Key Vault를 사용할 필요는 없습니다.

  • (선택 사항) 관리 ID를 사용하도록 구성된 Azure Machine Learning 컴퓨팅 클러스터. 클러스터는 시스템 할당 또는 사용자 할당 관리 ID에 대해 구성할 수 있습니다.

  • 컴퓨팅 클러스터에서 작업이 실행되는 경우 컴퓨팅 클러스터에 대한 관리 ID에 Key Vault에 저장된 비밀에 대한 액세스 권한을 부여합니다. 또는 서버리스 컴퓨팅에서 작업이 실행되는 경우 작업에 대해 지정된 관리 ID에 비밀에 대한 액세스 권한을 부여합니다. 액세스 권한을 부여하는 데 사용되는 방법은 Key Vault가 구성된 방법에 따라 달라집니다.

  • Key Vault에 저장된 비밀 값. 그런 다음, 키를 사용하여 이 값을 검색할 수 있습니다. 자세한 내용은 빠른 시작: Azure Key Vault에서 비밀 설정 및 검색을 참조하세요.

    빠른 시작 링크는 Azure Key Vault Python SDK를 사용하는 단계입니다. 왼쪽 탐색 영역의 목차에는 키를 설정하는 다른 방법에 대한 링크가 있습니다.

암호 가져오기

학습 중에 비밀을 가져오는 방법에는 다음 두 가지가 있습니다.

  • 학습 작업이 실행되는 컴퓨팅 리소스와 연결된 관리 ID 사용
  • 컴퓨팅이 사용자 대신 작업을 실행하게 하여 ID 사용
  1. 모델을 학습시킬 때 사용되는 Azure Machine Learning 환경azure-keyvault-secretsazure-identity 패키지를 추가합니다. 예를 들어 환경을 빌드하는 데 사용되는 conda 파일에 추가합니다.

    환경은 컴퓨팅 클러스터에서 학습 작업이 실행되는 Docker 이미지를 빌드하는 데 사용됩니다.

  2. 학습 코드에서 Azure ID SDKKey Vault 클라이언트 라이브러리를 사용하여 관리 ID 자격 증명을 가져오고 Key Vault에서 인증을 받습니다.

    from azure.identity import DefaultAzureCredential
    from azure.keyvault.secrets import SecretClient
    
    credential = DefaultAzureCredential()
    
    secret_client = SecretClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
    
  3. 인증 후 Key Vault 클라이언트 라이브러리를 사용하고 연결된 키를 제공하여 비밀을 검색합니다.

    secret = secret_client.get_secret("secret-name")
    print(secret.value)
    

Azure Machine Learning Python SDK v2를 사용하여 학습 작업을 제출하는 예제는 Python SDK v2를 사용하여 모델 학습을 참조하세요.