다음을 통해 공유


Azure Container Apps의 비밀 관리

Azure Container Apps를 사용하면 애플리케이션이 중요한 구성 값을 안전하게 저장할 수 있습니다. 애플리케이션 수준에서 비밀이 정의되면 Container Apps의 수정 버전에 보안 값을 사용할 수 있습니다. 또한 크기 조정 규칙 내에서 보안 값을 참조할 수 있습니다. Dapr에서 비밀을 사용하는 방법은 Dapr 통합을 참조하세요.

  • 비밀은 애플리케이션의 특정 수정 버전 이외의 애플리케이션으로 범위가 지정됩니다.
  • 비밀을 추가, 제거 또는 변경해도 새 수정 버전이 생성되지 않습니다.
  • 각 애플리케이션 수정 버전에서는 하나 이상의 비밀을 참조할 수 있습니다.
  • 여러 수정 버전이 동일한 비밀을 참조할 수 있습니다.

업데이트되거나 삭제된 비밀은 앱의 기존 수정 버전에 자동으로 영향을 주지 않습니다. 비밀이 업데이트되거나 삭제되면 다음 두 가지 방법 중 하나로 변경 내용에 응답할 수 있습니다.

  1. 새 수정 버전을 배포합니다.
  2. 기존 수정 버전을 다시 시작합니다.

비밀을 삭제하기 전에 이전 비밀을 더 이상 참조하지 않는 새 수정 버전을 배포합니다. 그런 다음, 비밀을 참조하는 모든 수정 버전을 비활성화합니다.

비밀 정의

비밀은 이름/값 쌍의 집합으로 정의됩니다. 각 비밀의 값은 직접 지정되거나 Azure Key Vault에 저장된 비밀에 대한 참조로 지정됩니다.

참고 항목

프로덕션 환경에서 비밀 값을 직접 지정하지 마세요. 대신 Container Apps 섹션의 스토어 비밀 값에 설명된 대로 Azure Key Vault에 저장된 비밀에 대한 참조를 사용합니다.

Container Apps에 비밀 값 저장

포털을 통해 또는 다른 명령줄 옵션을 통해 비밀을 정의하는 경우.

  1. Azure Portal에서 컨테이너 앱으로 이동합니다.

  2. 설정 섹션에서 비밀을 선택합니다.

  3. 추가를 선택합니다.

  4. 비밀 추가 컨텍스트 창에서 다음 정보를 입력합니다.

    • 이름: 비밀 이름
    • 형식: Container Apps 비밀 선택
    • : 비밀 값
  5. 추가를 선택합니다.

Key Vault의 참조 비밀

비밀을 정의할 때 Azure Key Vault에 저장된 비밀에 대한 참조를 만듭니다. Container Apps는 Key Vault에서 비밀 값을 자동으로 검색하여 Container Apps에서 비밀로 사용할 수 있도록 합니다.

Key Vault에서 비밀을 참조하려면 먼저 컨테이너 앱에서 관리 ID를 사용하도록 설정하고 Key Vault 비밀에 대한 ID 액세스 권한을 부여해야 합니다.

컨테이너 앱에서 관리 ID를 사용하도록 설정하려면 관리 ID를 참조하세요.

Key Vault 비밀에 액세스 권한을 부여하려면 Key Vault에서 만든 관리 ID에 대한 액세스 정책을 만듭니다. 이 정책에 대한 “가져오기” 비밀 권한을 사용하도록 설정합니다.

  1. Azure Portal에서 컨테이너 앱으로 이동합니다.

  2. 설정 섹션에서 ID를 선택합니다.

  3. 할당된 시스템 탭에서 켜기를 선택합니다.

  4. 저장을 선택하여 시스템이 할당한 관리 ID를 사용하도록 설정합니다.

  5. 설정 섹션에서 비밀을 선택합니다.

  6. 추가를 선택합니다.

  7. 비밀 추가 컨텍스트 창에서 다음 정보를 입력합니다.

    • 이름: 비밀 이름
    • 형식: Key Vault 참조 선택
    • Key Vault 비밀 URL: Key Vault에 있는 비밀의 URI
    • ID: Key Vault에서 비밀을 검색하는 데 사용할 ID
  8. 추가를 선택합니다.

참고 항목

Azure Firewall에서 UDR을 사용하는 경우 AzureKeyVault 서비스 태그와 login.microsoft.com FQDN을 방화벽의 허용 목록에 추가해야 합니다. 필요한 추가 서비스 태그를 결정하려면 Azure Firewall로 UDR 구성을 참조하세요.

Key Vault 비밀 URI 및 비밀 순환

Key Vault 비밀 URI는 다음 형식 중 하나여야 합니다.

  • https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: 특정 버전의 비밀을 참조합니다.
  • https://myvault.vault.azure.net/secrets/mysecret: 비밀의 최신 버전을 참조합니다.

URI에 비밀이 지정되지 않은 경우 앱은 키 자격 증명 모음에 있는 최신 버전을 사용합니다. 새 버전을 사용할 수 있게 되면 앱은 30분 이내에 자동으로 최신 버전을 검색합니다. 환경 변수의 비밀을 참조하는 활성 수정 버전은 자동으로 다시 시작되어 새 값을 선택합니다.

사용되는 비밀 버전을 완전히 제어하려면 URI에서 버전을 지정합니다.

환경 변수에서 비밀 참조

비밀 정의 섹션에 설명된 대로 애플리케이션 수준에서 비밀을 선언한 후 컨테이너 앱에서 새 수정 버전을 만들 때 환경 변수에서 참조할 수 있습니다. 환경 변수가 비밀을 참조하면 해당 값은 비밀에 정의된 값으로 채워집니다.

예시

다음 예제에서는 애플리케이션 수준에서 연결 문자열을 선언하는 애플리케이션을 보여 줍니다. 이 연결은 컨테이너 환경 변수 및 크기 조정 규칙에서 참조됩니다.

컨테이너 앱에서 비밀을 정의한 후 새 수정 버전을 만들 때 환경 변수에서 참조할 수 있습니다.

  1. Azure Portal에서 컨테이너 앱으로 이동합니다.

  2. 수정 관리 페이지를 엽니다.

  3. 새 수정 버전 만들기를 선택합니다.

  4. 새 수정 버전 만들기 및 배포 페이지에서 컨테이너를 선택합니다.

  5. 환경 변수 섹션에서 추가를 선택합니다.

  6. 다음 정보를 입력합니다.

    • 이름: 환경 변수 이름
    • 원본: 비밀 참조 선택
    • : 참조할 비밀 선택
  7. 저장을 선택합니다.

  8. 만들기를 선택하여 새 수정 버전을 만듭니다.

볼륨에 비밀 탑재

비밀 정의 섹션의 설명대로 애플리케이션 수준에서 비밀을 선언한 후에는 컨테이너 앱에서 새 수정 버전을 만들 때 볼륨 탑재에서 참조할 수 있습니다. 비밀을 볼륨에 탑재하면 각 비밀이 볼륨에서 파일로 탑재됩니다. 파일 이름은 비밀 이름이며 파일 콘텐츠는 비밀 값입니다. 볼륨 탑재의 모든 비밀을 로드하거나 특정 비밀을 로드할 수 있습니다.

예시

컨테이너 앱에서 비밀을 정의한 후 새 수정 버전을 만들 때 볼륨 탑재에서 참조할 수 있습니다.

  1. Azure Portal에서 컨테이너 앱으로 이동합니다.

  2. 수정 관리 페이지를 엽니다.

  3. 새 수정 버전 만들기를 선택합니다.

  4. 새 수정 버전 만들기 및 배포 페이지에서.

  5. 컨테이너를 선택하고 편집을 선택합니다.

  6. 볼륨 탑재 섹션에서 비밀 섹션을 펼칩니다.

  7. 새 볼륨 만들기를 선택합니다.

  8. 다음 정보를 입력합니다.

    • 이름: mysecrets
    • 모든 비밀 탑재: 사용됨

    참고 항목

    특정 비밀을 로드하려면 모든 비밀 탑재를 사용하지 않도록 설정하고 로드할 비밀을 선택합니다.

  9. 추가를 선택합니다.

  10. 볼륨 이름에서 mysecrets를 선택합니다.

  11. 탑재 경로/mnt/secrets를 입력합니다.

  12. 저장을 선택합니다.

  13. 만들기를 선택하여 볼륨 탑재에서 새 수정 버전을 만듭니다.

다음 단계