Azure Container Apps에서 시크릿 관리

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

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

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

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

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

비밀 정의

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

주의

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

Container Apps에 비밀 값 저장

다음은 포털을 통해 또는 다른 명령줄 옵션을 통해 비밀을 정의할 때 사용됩니다.

  1. Azure 포털 컨테이너 앱으로 이동합니다.

  2. 보안 섹션에서 비밀을 선택합니다.

  3. 추가를 선택합니다.

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

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

Key Vault에서 비밀을 참조

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

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

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

Key Vault 비밀에 대한 액세스 권한을 부여하려면 Azure RBAC 역할 Key Vault 비밀 사용자 관리 ID에 부여합니다.

  1. Azure 포털 컨테이너 앱으로 이동합니다.

  2. 보안 섹션에서 ID를 선택합니다.

  3. 시스템 할당 탭에서 상태켜짐으로 설정합니다.

주의

여러 리소스에서 다시 사용할 수 있고 앱 수명 주기와 독립적으로 유지되는 사용자 할당 관리 ID를 사용할 수도 있습니다. 이를 사용하려면 사용자 할당 탭을 선택하고 기존 ID를 선택합니다.

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

  2. 시스템 할당 관리 ID를 사용하도록 설정하고 컨테이너 앱을 Microsoft Entra ID 등록하려는지 확인하는 팝업이 나타납니다. 를 선택합니다.

  3. 보안 섹션에서 비밀을 선택합니다.

  4. 추가를 선택합니다.

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

    • 이름: 비밀 이름
    • Type: Key Vault 참조 항목을 선택하세요.
    • Key Vault 비밀 URL: Key Vault 비밀의 URI입니다. 이 URI의 형식은 다음과 같습니다. https://<YOUR_KEY_VAULT_NAME>.vault.azure.net/secrets/<YOUR_SECRET_NAME>/<32_DIGIT_HEX_ID>
    • 식별:시스템 할당을 선택합니다.
  6. 추가를 선택합니다.

주의

UDR with Azure Firewall 사용하는 경우 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 포털 컨테이너 앱으로 이동합니다.

  2. 애플리케이션 섹션에서 수정 버전 및 복제본을 선택합니다.

  3. 수정 버전 및 복제본 페이지에서 새 수정 버전 만들기를 선택합니다.

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

  5. 편집을 선택합니다.

  6. 컨테이너 컨텍스트 편집 창에서 환경 변수 탭을 선택합니다.

  7. 추가를 선택합니다.

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

    • 이름: 환경 변수 이름
    • 원본: 비밀 참조 선택하십시오
    • : 이전에 정의한 비밀을 선택합니다.
  9. 저장을 선택합니다.

  10. 새 수정 버전 만들기 및 배포 페이지에서 만들기를 선택하여 새 수정 버전을 만듭니다.

볼륨에 시크릿을 마운트하기

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

예시

컨테이너 앱에서 비밀을 정의 하고 나면, 새 수정 버전을 생성할 때 해당 비밀을 볼륨 탑재에서 참조할 수 있습니다.

  1. Azure 포털 컨테이너 앱으로 이동합니다.

  2. 애플리케이션 섹션에서 수정 버전 및 복제본을 선택합니다.

  3. 수정 버전 및 복제본 페이지에서 새 수정 버전 만들기를 선택합니다.

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

  5. 편집을 선택합니다.

  6. 컨테이너 편집 컨텍스트 창에서 볼륨 탑재 탭을 선택합니다.

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

  8. 볼륨 추가 컨텍스트 창에서 다음 정보를 입력합니다.

    • 볼륨 유형: 를 선택합니다 Secret.
    • 이름: mysecrets
    • 모든 시크릿 탑재: 활성화됨

    주의

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

  9. 추가를 선택합니다.

  10. 컨테이너 컨텍스트 편집 창의 볼륨 이름 아래에서 mysecrets를 선택합니다.

  11. 마운트 경로/mnt/secrets를 입력합니다.

  12. 저장을 선택합니다.

  13. 새 버전 개정을 생성하고 배포 페이지에서 생성을 선택하여 볼륨 마운트를 사용하여 새 버전 개정을 만듭니다.

Key Vault 참조 문제 해결

Azure Key Vault 비밀을 참조하는 경우 비밀 검색 또는 동기화 중에 문제가 발생할 수 있습니다. 일반적인 오류 및 해결 방법은 다음과 같습니다.

오류 원인 해결 방법
관리 ID를 사용할 수 없음 컨테이너 앱에 할당된 관리 ID가 없습니다. 컨테이너 앱에서 시스템 할당 또는 사용자 할당 관리 ID를 사용하도록 설정합니다. 관리 ID를 참조하세요.
ID를 찾을 수 없음 지정된 관리 ID가 없거나 컨테이너 앱에 할당되지 않습니다. 아이덴티티가 생성되어 아이덴티티 섹션의 컨테이너 앱에 할당되었는지 확인합니다.
Key Vault에서 비활성화된 비밀 비밀은 Key Vault 리소스에서 사용하지 않도록 설정됩니다. Azure 포털에서 Key Vault로 이동하여 비밀을 활성화합니다.
인증 실패 관리 ID에는 비밀을 읽는 데 필요한 권한이 없습니다. Key Vault 관리 ID에 Key Vault 비밀 사용자 역할을 부여합니다. Key Vault 비밀 사용자 참조하세요.
RBAC 권한이 거부됨 관리 ID에는 Key Vault 액세스할 수 있는 권한이 부족합니다. Key Vault RBAC 역할 할당을 확인하고 비밀에 대한 읽기 권한이 포함되어 있는지 확인합니다.

다음 단계