Azure API Management에서 클라이언트 인증서 인증을 사용한 백엔드 서비스 보호

API Management를 사용하면 클라이언트 인증서및 상호 TLS 인증을 사용하여 API의 백엔드 서비스에 대한 액세스를 보호할 수 있습니다. 이 가이드에서는 Azure Portal을 이용하여 Azure API Management 서비스 인스턴스의 인증서를 관리하는 방법을 보여줍니다. 또한 인증서를 사용하여 백엔드 서비스에 액세스하도록 API를 구성하는 방법을 설명합니다.

API Management REST API를 사용하여 API Management 인증서를 관리할 수도 있습니다.

인증서 옵션

API Management에서는 백엔드 서비스에 대한 액세스를 보호하는 데 사용되는 인증서를 관리하는 두 가지 옵션을 제공합니다.

  • Azure Key Vault에서 관리되는 인증서 참조
  • API Management에 직접 인증서 파일 추가

API Management 보안을 높이기 위해 키 자격 증명 모음 인증서를 사용하는 것이 좋습니다.

  • 키 자격 증명 모음에 저장된 인증서는 서비스에서 재사용할 수 있습니다.
  • 키 자격 증명 모음에 저장된 인증서에 세분화된 액세스 정책을 적용할 수 있습니다.
  • 키 자격 증명 모음에서 업데이트한 인증서는 API Management에서 자동으로 회전됩니다. 키 자격 증명 모음에서 업데이트 후 API Management에 있는 인증서는 4시간 이내에 업데이트됩니다. Azure Portal 또는 Management REST API를 사용하여 인증서를 수동으로 새로 고칠 수도 있습니다.

필수 조건

참고 항목

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

  • 아직 API Management 서비스 인스턴스를 만들지 않은 경우 API Management 서비스 인스턴스 만들기를 참조하세요.

  • 클라이언트 인증서 인증에 대해 백엔드 서비스를 구성해야 합니다. Azure App Service에서 인증서 인증을 구성하려면 이 문서를 참조하세요.

  • Azure Key Vault에서 관리를 위해 인증서 및 암호에 액세스하거나 API Management 서비스에 업로드해야 합니다. 인증서는 PFX 형식이어야 합니다. 자체 서명된 인증서도 사용할 수 있습니다.

    자체 서명된 인증서를 사용하는 경우:

키 자격 증명 모음 통합을 위한 사전 요구 사항

  1. 아직 키 자격 증명 모음이 없는 경우 키 자격 증명 모음을 만듭니다. 키 자격 증명 모음을 만드는 단계는 빠른 시작: Azure Portal을 사용하여 키 자격 증명 모음 만들기를 참조하세요.

    Key Vault에 인증서를 만들거나 가져오려면 빠른 시작: Azure Portal을 사용하여 Azure Key Vault에서 인증서 설정 및 검색을 참조하세요.

  2. API Management 인스턴스에서 시스템 또는 사용자가 할당한 관리 ID를 사용하도록 설정합니다.

키 자격 증명 모음에 대한 액세스 구성

  1. 포털에서 키 자격 증명 모음으로 이동합니다.

  2. 왼쪽 메뉴에서 액세스 구성을 선택하고 구성된 권한 모델을 기록해 둡니다.

  3. 권한 모델에 따라 API Management 관리 ID에 대해 키 자격 증명 모음 액세스 정책 또는 Azure RBAC 액세스를 구성합니다.

    키 자격 증명 모음 액세스 정책을 추가하려면:

    1. 왼쪽 메뉴에서 액세스 정책을 선택합니다.
    2. 액세스 정책 페이지에서 + 만들기를 선택합니다.
    3. 권한 탭의 비밀 권한에서 가져오기나열을 선택한 후 다음을 선택합니다.
    4. 보안 주체 탭에서 보안 주체를 선택하고, 관리 ID의 리소스 이름을 검색한 후, 다음을 선택합니다. 시스템이 할당한 ID를 사용하는 경우 보안 주체는 API Management 인스턴스의 이름입니다.
    5. 다음을 다시 선택합니다. 검토 + 만들기 탭에서 만들기를 선택합니다.

    Azure RBAC 액세스를 구성하려면:

    1. 왼쪽 메뉴에서 액세스 제어(IAM)를 선택합니다.
    2. 액세스 제어(IAM) 페이지에서 역할 할당 추가를 선택합니다.
    3. 역할 탭에서 Key Vault 비밀 사용자를 선택합니다.
    4. 멤버 탭에서 관리 ID>+ 멤버 선택을 선택합니다.
    5. 관리 ID 선택 페이지에서 시스템이 할당한 관리 ID 또는 API Management 인스턴스와 연결된 사용자가 할당한 관리 ID를 선택한 다음, 선택을 선택합니다.
    6. 검토 + 할당을 선택합니다.

Key Vault 방화벽에 대한 요구 사항

키 자격 증명 모음에서 Key Vault 방화벽을 사용하도록 설정한 경우 추가 요구 사항은 다음과 같습니다.

  • 키 자격 증명 모음에 액세스하려면 API Management 인스턴스의 시스템 할당 관리 ID를 사용해야 합니다.

  • Key Vault 방화벽에서 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 옵션을 사용하도록 설정합니다.

  • Azure API Management에 추가할 인증서 또는 비밀을 선택하는 동안 로컬 클라이언트 IP 주소가 키 자격 증명 모음에 일시적으로 액세스할 수 있는지 확인합니다. 자세한 내용은 Azure Key Vault 네트워킹 설정 구성을 참조하세요.

    구성을 완료한 후 키 자격 증명 모음 방화벽에서 클라이언트 주소를 차단할 수 있습니다.

가상 네트워크 요구 사항

API Management 인스턴스가 가상 네트워크에 배포된 경우 다음 네트워크 설정도 구성합니다.

  • API Management 서브넷에서 Azure Key Vault에 대한 서비스 엔드포인트를 사용하도록 설정합니다.
  • AzureKeyVault 및 AzureActiveDirectory 서비스 태그에 대한 아웃바운드 트래픽을 허용하도록 NSG(네트워크 보안 그룹) 규칙을 구성합니다.

자세한 내용은 VNet에서 Azure API Management를 설정할 때 네트워크 구성을 참조하세요.

키 자격 증명 모음 인증서 추가

키 자격 증명 모음 통합을 위한 필수 구성 요소를 참조하세요.

Important

API Management 인스턴스에 키 자격 증명 모음 인증서를 추가할 때 키 자격 증명 모음의 비밀을 나열할 수 있는 권한이 있어야 합니다.

주의

API Management에서 키 자격 증명 모음 인증서를 사용하는 경우 키 자격 증명 모음 액세스에 사용하는 인증서, 키 자격 증명 모음 또는 관리 ID를 삭제하지 않도록 주의합니다.

API Management에 키 자격 증명 모음 인증서를 추가하려면 다음을 수행합니다.

  1. Azure Portal에서 API Management 인스턴스로 이동합니다.

  2. 보안에서 인증서를 선택합니다.

  3. 인증서>+ 추가를 선택합니다.

  4. ID에서 원하는 이름을 입력합니다.

  5. 인증서에서 키 자격 증명 모음을 선택합니다.

  6. 키 자격 증명 모음 인증서의 식별자를 입력하거나, 키 자격 증명 모음에서 인증서를 선택하려면 선택을 선택합니다.

    Important

    키 자격 증명 모음 인증서 식별자를 직접 입력할 때 버전 정보를 포함해서는 안 됩니다. 이를 포함할 경우 키 자격 증명 모음을 업데이트한 후에 API Management에서 인증서가 자동으로 회전되지 않습니다.

  7. 클라이언트 ID에서 시스템 또는 기존 사용자가 할당한 관리 ID를 선택합니다. API Management 서비스에서 관리 ID를 추가 또는 수정하는 방법에 대해 알아봅니다.

    참고 항목

    ID에는 키 자격 증명 모음에서 인증서를 가져오고 나열할 수 있는 권한이 필요합니다. 키 자격 증명 모음에 대한 액세스를 아직 구성하지 않은 경우 API Management는 필수적인 권한을 통해 ID를 자동으로 구성할 수 있도록 메시지를 표시합니다.

  8. 추가를 선택합니다.

    Screenshot of adding a key vault certificate to API Management in the portal.

  9. 저장을 선택합니다.

인증서 업로드

API Management에 클라이언트 인증서를 업로드하려면 다음을 수행합니다.

  1. Azure Portal에서 API Management 인스턴스로 이동합니다.

  2. 보안에서 인증서를 선택합니다.

  3. 인증서>+ 추가를 선택합니다.

  4. ID에서 원하는 이름을 입력합니다.

  5. 인증서에서 사용자 지정을 선택합니다.

  6. 인증서 .pfx 파일을 찾아 선택하고 암호를 입력합니다.

  7. 추가를 선택합니다.

    Screenshot of uploading a client certificate to API Management in the portal.

  8. 저장을 선택합니다.

인증서를 업로드하면 인증서 창에 표시됩니다. 인증서가 많은 경우 게이트웨이 인증에 클라이언트 인증서를 사용하도록 API를 구성하려면 원하는 인증서의 지문을 기록해 둡니다.

게이트웨이 인증에 클라이언트 인증서를 사용하도록 API 구성

  1. Azure Portal에서 API Management 인스턴스로 이동합니다.

  2. API에서 API를 선택합니다.

  3. 목록에서 API를 선택합니다.

  4. 디자인 탭에서 백엔드 섹션에 있는 편집기 아이콘을 선택합니다.

  5. 게이트웨이 자격 증명에서 클라이언트 인증서를 선택하고 드롭다운 목록에서 인증서를 선택합니다.

  6. 저장을 선택합니다.

    Use client certificate for gateway authentication

주의

변경한 내용은 즉시 적용되며 해당 API의 작업 호출은 인증서를 사용하여 백엔드 서버에서 인증됩니다.

API의 백 엔드 서비스에 대한 게이트웨이 인증을 위해 지정된 인증서는 해당 API의 정책에 포함되며 정책 편집기에서 볼 수 있습니다.

자체 서명된 인증서에 대한 인증서 체인 유효성 검사 사용 안 함

자체 서명된 인증서를 사용하는 경우 API Management와 백엔드 시스템의 통신을 위해 인증서 체인 유효성 검사를 비활성화해야 합니다. 그렇지 않으면 500 오류 코드를 반환합니다. 이를 구성하기 위해 New-AzApiManagementBackend(새로운 백엔드) 또는 Set-AzApiManagementBackend(기존 백엔드) PowerShell cmdlet을 사용하고 -SkipCertificateChainValidation 매개 변수를 True로 설정할 수 있습니다.

$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

백 엔드 REST API를 사용하여 인증서 체인 유효성 검사를 사용하지 않도록 설정할 수도 있습니다.

클라이언트 인증서 삭제

인증서를 삭제하려면 해당 인증서를 선택한 다음, 컨텍스트 메뉴(...)에서 삭제를 선택합니다.

Delete a certificate

Important

인증서가 어떠한 정책에서 참조되고 있다면, 경고 화면이 표시됩니다. 인증서를 삭제하려면 해당 인증서를 사용하도록 구성된 정책에서 인증서를 제거해야 합니다.

다음 단계