다음을 통해 공유


AKS(Azure Kubernetes Service)에서 CA(사용자 지정 인증 기관) 사용

CA(사용자 지정 인증 기관)를 사용하면 노드의 신뢰 저장소에 최대 10개의 base64로 인코딩된 인증서를 추가할 수 있습니다. 이 기능은 프라이빗 레지스트리에 연결할 때와 같이 CA(인증 기관)가 노드에 있어야 하는 경우에 종종 필요합니다.

이 문서에서는 사용자 지정 CA를 만들고 AKS 클러스터에 적용하는 방법을 보여 줍니다.

Note

사용자 지정 CA 기능은 AKS 노드의 신뢰 저장소에 사용자 지정 인증서를 추가합니다. 이 기능을 사용하여 추가된 인증서는 Pod에서 실행되는 컨테이너에서 사용할 수 없습니다. 컨테이너 내 인증서가 필요한 경우, Pod에 사용되는 이미지에 인증서를 추가하거나, 런타임 시 스크립팅과 시크릿을 사용하여 인증서를 추가해야 합니다.

Prerequisites

  • Azure 구독 Azure 구독이 없는 경우 무료 계정을 만드세요.
  • Azure CLI 버전 2.72.0 이상이 설치 및 구성되었습니다. CLI 버전을 찾으려면 명령을 실행합니다 az --version . 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
  • base64로 인코딩된 인증서 문자열 또는 인증서가 포함된 텍스트 파일.

Limitations

  • Windows 노드 풀은 지원되지 않습니다.
  • 동일한 클러스터에 다른 CA를 설치하는 것은 지원되지 않습니다.

인증서 파일 만들기

  • 최대 10개의 빈 줄로 구분된 인증서를 포함하는 텍스트 파일을 만듭니다. 이 파일을 클러스터에 전달하면 인증서가 AKS 노드의 신뢰 저장소에 설치됩니다.

    예제 텍스트 파일:

        -----BEGIN CERTIFICATE-----
        cert1
        -----END CERTIFICATE-----
    
        -----BEGIN CERTIFICATE-----
        cert2
        -----END CERTIFICATE-----
    

다음 단계를 진행하기 전에 오류를 방지하기 위해 텍스트 파일에 빈 공백이 없는지 확인합니다.

AKS 클러스터에 사용자 지정 CA 전달

  • az aks create 또는 az aks update 명령을 사용하고 --custom-ca-trust-certificates를 인증서 파일의 이름으로 설정하여 클러스터에 인증서를 전달합니다.

    # Create a new cluster
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --custom-ca-trust-certificates <path-to-certificate-file> \
        --generate-ssh-keys
    
    # Update an existing cluster
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --custom-ca-trust-certificates <path-to-certificate-file>
    

    Note

    이 작업은 모델 업데이트를 트리거하여 모든 기존 노드에 올바른 프로비저닝을 위해 동일한 CA가 설치되어 있는지 확인합니다. AKS는 새 노드를 만들고, 기존 노드를 드레이닝하고, 기존 노드를 삭제하고, 새 CA 집합이 설치된 노드로 바꿉니다.

CA가 설치되어 있는지 확인

  • 명령을 사용하여 CA가 설치되어 있는지 확인합니다 az aks show .

    az aks show --resource-group <resource-group-name> --name <cluster-name> | grep securityProfile -A 4
    

    출력에서 섹션에는 securityProfile 사용자 지정 CA 인증서가 포함되어야 합니다. 다음은 그 예입니다.

      "securityProfile": {
        "azureKeyVaultKms": null,
        "customCaTrustCertificates": [
            "values"
    

사용자 지정 CA 서식 오류 해결

인증서가 있는 파일의 형식이 제대로 지정되지 않은 경우 클러스터에 인증서를 추가하면 오류가 발생할 수 있습니다. 다음 예제와 유사한 오류가 표시될 수 있습니다.

failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding

이 오류가 발생하는 경우 예제 파일에 표시된 것처럼 입력 파일에 올바른 형식의 인증서 이외의 추가 줄, 공백 또는 데이터가 없는지 확인해야 합니다.

알 수 없는 기관 오류로 서명된 사용자 지정 CA X.509 인증서 해결

AKS를 사용하려면 전달된 인증서를 올바르게 포맷하고 base64로 인코딩해야 합니다. 전달한 CA가 제대로 base64로 인코딩되어 있고 CA가 있는 파일에 CRLF 줄 바꿈이 없는지 확인합니다.

containerd를 재시작하여 새 인증서를 반영합니다.

containerd가 새 인증서를 선택하지 않는 경우, 노드의 셸에서 systemctl restart containerd 명령을 실행합니다. 컨테이너가 다시 시작되면 컨테이너 런타임에서 새 인증서를 선택해야 합니다.

AKS 보안 모범 사례에 대한 자세한 내용은 AKS(Azure Kubernetes Service)에서 클러스터 보안 및 업그레이드에 대한 모범 사례를 참조하세요.