적용 대상: 모든 API Management 계층
API Management를 사용하면 클라이언트 인증서 및 상호 TLS 인증을 사용하여 API의 백 엔드 서비스에 대한 액세스를 보호할 수 있습니다. 이 문서에서는 Azure Portal을 사용하여 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을 사용하거나 관리 REST API를 통해 인증서를 수동으로 새로 고칠 수도 있습니다.
필수 조건
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
API Management 인스턴스를 아직 만들지 않은 경우 API Management 서비스 인스턴스 만들기를 참조하세요.
백 엔드 서비스 클라이언트 인증서 인증을 구성합니다. Azure App Service에서 인증서 인증을 구성하는 방법에 대한 자세한 내용은 App Service에서 TLS 상호 인증 구성을 참조하세요.
Azure Key Vault의 관리용 인증서 및 암호 또는 API Management 서비스에 업로드할 인증서에 대한 액세스 권한이 있는지 확인합니다. 인증서는 PFX 형식이어야 합니다. 자체 서명된 인증서도 사용할 수 있습니다.
자체 서명된 인증서를 사용하는 경우:
API Management 인스턴스에 신뢰할 수 있는 루트 및 중간 CA 인증서를 설치합니다.
참고 항목
인증서 유효성 검사에 대한 CA 인증서는 소비 계층에서 지원되지 않습니다.
인증서 체인 유효성 검사를 사용하지 않도록 설정합니다. 이 문서의 뒷부분에서 자체 서명된 인증서에 대한 인증서 체인 유효성 검사 사용 안 함을 참조하세요.
키 자격 증명 모음 통합을 위한 사전 요구 사항
참고 항목
현재 이 기능은 작업 영역에서 사용할 수 없습니다.
아직 키 자격 증명 모음이 없으면 새로 만듭니다. 키 자격 증명 모음을 만드는 방법에 대한 자세한 내용은 빠른 시작: Azure Portal을 사용하여 키 자격 증명 모음 만들기를 참조하세요.
API Management에서 시스템 할당 또는 사용자 할당 관리 ID를 사용하도록 설정합니다.
키 자격 증명 모음에 대한 액세스 구성
- 포털의 키 자격 증명 저장소로 이동합니다.
- 왼쪽 메뉴에서 액세스 구성을 선택합니다. 구성된 사용 권한 모델을 확인합니다.
- 권한 모델에 따라 API Management 관리 ID에 대해 키 자격 증명 모음 액세스 정책 또는 Azure RBAC 액세스를 구성합니다.
키 자격 증명 모음 액세스 정책을 추가하려면 다음을 수행합니다.
- 왼쪽 메뉴에서 액세스 정책을 선택합니다.
- 액세스 정책 페이지에서 + 만들기를 선택합니다.
- 사용 권한 탭의 비밀 사용 권한에서 가져오기 및 목록을선택한 다음 다음을 선택합니다.
- 보안 주체 탭에서 보안 주체를 선택하고 관리 ID의 리소스 이름을 검색한 다음, 다음을 선택합니다. 시스템이 할당한 ID를 사용하는 경우 보안 주체는 API Management 인스턴스의 이름입니다.
- 다음을 다시 선택합니다. 검토 + 만들기 탭에서 만들기를 선택합니다.
키 자격 증명 모음에서 인증서를 만들거나 키 자격 증명 모음으로 인증서를 가져오려면 빠른 시작: Azure Portal을 사용하여 Azure Key Vault에서 인증서 설정 및 검색을 참조하세요.
Key Vault 방화벽에 대한 요구 사항
Key Vault 방화벽이 키 자격 증명 모음에서 활성화된 경우, 다음 요구 사항을 충족해야 합니다.
키 자격 증명 모음에 액세스하려면 API Management 인스턴스의 시스템 할당 관리 ID를 사용해야 합니다.
Key Vault 방화벽에서 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 옵션을 사용하도록 설정합니다.
Azure API Management에 추가할 인증서 또는 비밀을 선택하는 동안 로컬 클라이언트 IP 주소가 키 자격 증명 모음에 일시적으로 액세스할 수 있는지 확인합니다. 자세한 내용은 Azure Key Vault 네트워킹 설정 구성을 참조하세요.
구성을 완료한 후 키 자격 증명 모음 방화벽에서 클라이언트 주소를 차단할 수 있습니다.
가상 네트워크 요구 사항
API Management 인스턴스가 가상 네트워크에 배포된 경우 다음 네트워크 설정도 구성합니다.
- API Management 서브넷에서 Key Vault에 서비스 엔드포인트 를 사용하도록 설정합니다.
- AzureKeyVault 및 AzureActiveDirectory 서비스 태그에 대한 아웃바운드 트래픽을 허용하도록 NSG(네트워크 보안 그룹) 규칙을 구성합니다.
자세한 내용은 가상 네트워크에서 API Management를 설정할 때 네트워크 구성을 참조하세요.
키 자격 증명 모음 인증서 추가
키 자격 증명 모음 통합을 위한 필수 구성 요소를 참조하세요.
중요합니다
API Management 인스턴스에 키 자격 증명 모음 인증서를 추가하려면 키 자격 증명 모음의 비밀을 나열할 수 있는 권한이 있어야 합니다.
주의
API Management에서 키 자격 증명 모음 인증서를 사용하는 경우 키 자격 증명 모음에 액세스하는 데 사용되는 인증서, 키 자격 증명 모음 또는 관리 ID를 삭제하지 않도록 주의해야 합니다.
API Management에 키 자격 증명 모음 인증서를 추가하려면 다음을 수행합니다.
Azure Portal에서 API Management 인스턴스로 이동합니다.
보안에서 인증서를 선택합니다.
인증서>+ 추가를 선택합니다.
ID에 이름을 입력합니다.
인증서에서 키 자격 증명 모음을 선택합니다.
키 자격 증명 모음 인증서의 식별자를 입력하거나, 키 자격 증명 모음에서 인증서를 선택하려면 선택을 선택합니다.
중요합니다
키 자격 증명 모음 인증서 식별자를 직접 입력할 경우, 버전 정보가 포함되어 있지 않은지 반드시 확인하십시오. 이를 포함할 경우 키 자격 증명 모음을 업데이트한 후에 API Management에서 인증서가 자동으로 회전되지 않습니다.
클라이언트 ID에서 시스템 할당 ID 또는 기존 사용자 할당 관리 ID를 선택합니다. 자세한 내용은 Azure API Management에서 관리 ID 사용을 참조하세요.
참고 항목
ID에는 키 자격증명 보관소에서 인증서를 가져오고 나열할 수 있는 권한이 있어야 합니다. 키 자격 증명 모음에 대한 액세스를 아직 구성하지 않은 경우 API Management는 필요한 권한으로 ID를 자동으로 구성할 수 있도록 메시지를 표시합니다.
추가를 선택합니다.
저장을 선택합니다.
인증서 업로드
API Management에 클라이언트 인증서를 업로드하려면 다음을 수행합니다.
Azure Portal에서 API Management 인스턴스로 이동합니다.
보안에서 인증서를 선택합니다.
인증서>+ 추가를 선택합니다.
ID에 이름을 입력합니다.
인증서에서 사용자 지정을 선택합니다.
인증서 .pfx 파일을 찾아 선택하고 암호를 입력합니다.
추가를 선택합니다.
저장을 선택합니다.
인증서를 업로드하면 인증서 창에 표시됩니다. 인증서가 많은 경우 방금 업로드한 인증서의 지문을 적어둡니다. 게이트웨이 인증에 클라이언트 인증서를 사용하도록 API를 구성하는 데 필요합니다.
게이트웨이 인증에 클라이언트 인증서를 사용하도록 API 구성
Azure Portal에서 API Management 인스턴스로 이동합니다.
API에서 API를 선택합니다.
목록에서 API를 선택합니다.
디자인 탭의 백 엔드 섹션에서 연필 아이콘을 선택합니다.
게이트웨이 자격 증명에서 클라이언트 인증서를 선택한 다음, 클라이언트 인증서 목록에서 인증서를 선택합니다.
저장을 선택합니다.
주의
이 변경 내용은 즉시 적용됩니다. API 작업에 대한 호출은 인증서를 사용하여 백 엔드 서버에서 인증합니다.
팁
API의 백 엔드 서비스에 대한 게이트웨이 인증을 위해 인증서를 지정하면 해당 API에 대한 정책의 일부가 되며 정책 편집기에서 볼 수 있습니다.
자체 서명된 인증서에 대한 인증서 체인 유효성 검사 사용 안 함
자체 서명된 인증서를 사용하는 경우 API Management가 백 엔드 시스템과 통신할 수 있도록 인증서 체인 유효성 검사를 사용하지 않도록 설정해야 합니다. 그렇지 않으면 500 오류 코드가 표시됩니다. 이 유효성 검사를 사용하지 않도록 설정하려면 (새 백 엔드의 경우) 또는 New-AzApiManagementBackend
(기존 백 엔드의 경우) PowerShell cmdlet을 사용하고 Set-AzApiManagementBackend
매개 변수를 -SkipCertificateChainValidation
다음으로 True
설정할 수 있습니다.
$context = New-AzApiManagementContext -ResourceGroupName 'ContosoResourceGroup' -ServiceName 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
백 엔드 REST API를 사용하여 인증서 체인 유효성 검사를 사용하지 않도록 설정할 수도 있습니다.
클라이언트 인증서 삭제
인증서를 삭제하려면 줄임표(...) 메뉴에서 삭제를 선택합니다.
중요합니다
인증서가 정책에서 참조되는 경우 경고 화면이 나타납니다. 인증서를 삭제하려면 먼저 인증서를 사용하도록 구성된 정책에서 제거해야 합니다.