Az - API Management
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
Azure API Management (APIM)은 API를 게시, 보호, 변환, 관리 및 모니터링하기 위한 통합 플랫폼을 제공하는 완전 관리형 서비스입니다. 조직이 API 전략을 중앙화하고 모든 서비스 전반에서 일관된 거버넌스, 성능 및 보안을 보장할 수 있게 해줍니다. 백엔드 서비스와 API 소비자 사이의 추상화 계층으로 작동하여 APIM은 통합을 단순화하고 유지 관리를 향상시키며 필수적인 운영 및 보안 기능을 제공합니다.
핵심 개념
The API Gateway는 모든 API 트래픽의 단일 진입점으로 작동하며, 요청을 백엔드 서비스로 라우팅하고, 속도 제한을 적용하고, 응답을 캐시하며, 인증 및 권한 관리를 수행합니다. 이 게이트웨이는 Azure에서 완전히 호스팅 및 관리되므로 높은 가용성과 확장성을 보장합니다.
The Developer Portal은 API 소비자가 사용 가능한 API를 찾고, 문서를 읽고, 엔드포인트를 테스트할 수 있는 셀프 서비스 환경을 제공합니다. 인터랙티브 도구와 구독 정보 접근을 제공하여 온보딩을 간소화합니다.
**The Management Portal (Management Plane)**은 관리자가 APIM 서비스를 구성하고 유지 관리하는 데 사용됩니다. 여기에서 사용자는 API 및 작업을 정의하고, 액세스 제어를 구성하며, 정책을 적용하고, 사용자를 관리하고, API를 제품으로 구성할 수 있습니다. 이 포털은 관리를 중앙집중화하여 일관된 API 거버넌스를 보장합니다.
인증 및 권한 부여
Azure API Management는 API 액세스를 보호하기 위해 여러 authentication mechanisms를 지원합니다. 여기에는 subscription keys, OAuth 2.0 tokens, client certificates가 포함됩니다. APIM은 또한 Microsoft Entra ID와 기본 통합되어 엔터프라이즈 수준의 아이덴티티 관리 및 API와 백엔드 서비스에 대한 안전한 액세스를 가능하게 합니다.
Policies
APIM의 정책은 서비스, API, operation 또는 product 수준 등 다양한 세분화 수준에서 request and response processing을 사용자 지정할 수 있게 합니다. 정책을 통해 JWT token validation을 강제하거나, XML 또는 JSON 페이로드를 변환, rate limiting 적용, IP 주소로 호출 제한, 또는 managed identities를 사용한 백엔드 서비스 인증 등을 수행할 수 있습니다. 정책은 매우 유연하며 API Management 플랫폼의 핵심 강점 중 하나로, 백엔드 코드를 수정하지 않고도 런타임 동작을 세분화하여 제어할 수 있게 합니다.
Named Values
서비스는 Named Values라는 메커니즘을 제공하여 configuration information(예: secrets, API keys 또는 정책에 필요한 기타 값)을 저장할 수 있게 합니다.
이 값들은 APIM 내에 직접 저장되거나 Azure Key Vault에서 안전하게 참조될 수 있습니다. Named Values는 구성 데이터를 안전하고 중앙에서 관리하도록 촉진하며, 하드코딩된 값 대신 재사용 가능한 참조를 허용하여 정책 작성 작업을 단순화합니다.
네트워킹 및 보안 통합
Azure API Management는 virtual network environments와 원활하게 통합되어 백엔드 시스템에 대한 private and secure connectivity를 가능하게 합니다.
Virtual Network (VNet) 내부에 배포될 경우, APIM은 내부 서비스를 공개적으로 노출하지 않고 접근할 수 있습니다. 또한 이 서비스는 백엔드 서비스와의 mutual TLS authentication을 지원하기 위해 custom certificates 구성을 허용하여, 강력한 아이덴티티 검증이 필요한 시나리오에서 보안을 향상시킵니다.
이러한 networking features는 APIM을 cloud-native 및 hybrid architectures 모두에 적합하게 만듭니다.
열거
API 관리 서비스를 열거하려면:
# Lists all Named Values configured in the Azure API Management instance
az apim nv list --resource-group <resource-group> --service-name <service-name>
# Retrieves all policies applied at the API level in raw XML format
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/apis/<api-id>/policies/?api-version=2024-05-01&format=rawxml"
# Retrieves the effective policy for a specific API in raw XML format
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/apis/<api-id>/policies/policy?api-version=2024-05-01&format=rawxml"
# Gets the configuration details of the APIM service instance
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<apim>?api-version=2024-05-01"
# Lists all backend services registered in the APIM instance
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/backends?api-version=2024-05-01"
# Retrieves details of a specific backend service
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/backends/<backend-id>?api-version=2024-05-01"
# Gets general information about the APIM service
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>?api-version=2024-05-01"
# Calls an exposed API endpoint through the APIM gateway
curl https://<apim>.azure-api.net/<api-path>
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud

