적용 대상: 모든 API Management 계층
이 자습서에서는 API를 보호하거나 변환하기 위한 정책을 구성하는 방법에 대해 알아봅니다. 정책은 API의 요청이나 응답에 따라 순차적으로 실행되는 문의 컬렉션으로, API의 동작을 수정합니다.
팁
API 팀은 작업 영역에서 이 기능을 사용할 수 있습니다. 작업 영역은 API와 자체 API 런타임 환경에 대한 격리된 관리 액세스를 제공합니다.
예를 들어, 사용자 지정 응답 헤더를 설정할 수 있습니다. 또는 개발자가 API를 과도하게 사용하지 못하도록 속도 제한 정책을 구성하여 백 엔드 API를 보호합니다. 이러한 예는 API Management 정책에 대한 간단한 소개입니다. 자세한 정책 옵션은 API Management 정책을 참조하세요.
참고
기본적으로 API Management는 전역 forward-request
정책을 구성합니다. 게이트웨이에서 백 엔드 서비스에 대한 요청을 완료하려면 forward-request
정책이 필요합니다.
이 자습서에서는 다음 작업 방법을 알아봅니다.
- API를 변환하여 사용자 지정 응답 헤더를 설정합니다.
- 속도 제한 정책(제한)을 추가하여 API 보호
- 변환 테스트
필수 구성 요소
- Azure API Management 용어를 익힙니다.
- Azure API Management의 정책 개념을 이해합니다.
- 다음 빠른 시작 Azure API Management 인스턴스 만들기를 완료합니다. 이 자습서에서는 클래식 또는 v2 계층(예: 개발자 계층 또는 클래식 v2 계층) 중 하나를 사용하는 것이 좋습니다. 소비 계층은 이 자습서에서 사용되는 모든 정책을 지원하지 않습니다.
- 또한, 다음 자습서 첫 번째 API 가져오기 및 게시를 완료합니다.
API Management 인스턴스로 이동
Azure 포털에서 API Management 서비스를 검색하고 선택합니다.
API Management 서비스 페이지에서 API Management 인스턴스를 선택합니다.
원래 응답 테스트
원래 응답을 확인하려면 다음을 수행합니다.
- API Management 서비스 인스턴스에서 API를 선택합니다.
- API 목록에서 Swagger Petstore를 선택합니다.
- 화면 위쪽에 있는 테스트 탭을 선택합니다.
- GET 상태별 애완동물 찾기 작업을 선택하고, 선택적으로 상태쿼리 매개 변수의 다른 값을 선택합니다. 보내기를 선택합니다.
원래 API 응답은 다음 응답과 비슷합니다.
API를 변환하여 사용자 지정 응답 헤더를 추가합니다.
API Management에는 요청이나 응답 페이로드, 헤더 또는 상태 코드를 수정하는 데 사용할 수 있는 여러 가지 변환 정책이 포함되어 있습니다. 이 예에서는 API 응답에서 사용자 지정 응답 헤더를 설정합니다.
변환 정책 설정
이 섹션에서는 set-header
정책을 사용하여 사용자 지정 응답 헤더를 구성하는 방법을 보여 줍니다. 여기서는 정책 구성을 간소화하는 양식 기반 정책 편집기를 사용합니다.
Swagger Petstore>디자인>모든 작업을 선택합니다.
아웃바운드 처리 섹션에서 + 정책 추가를 선택합니다.
아웃바운드 정책 추가 창에서 헤더 설정을 선택합니다.
헤더 설정 정책을 구성하려면 다음을 수행합니다.
- 이름에 사용자 지정을 입력합니다.
- 값에서 + 값 추가를 선택합니다. "내 사용자 지정 값"을 입력합니다.
- 저장을 선택합니다.
구성 후 set-header 정책 요소가 아웃바운드 처리 섹션에 나타납니다.
속도 제한 정책(제한)을 추가하여 API 보호
이 섹션에서는 개발자가 API를 과도하게 사용하지 않도록 속도 제한을 구성하여 보호를 백 엔드 API에 추가하는 방법을 보여 줍니다. 이 예에서는 코드 편집기를 사용하여 rate-limit-by-key
정책을 구성하는 방법을 보여 줍니다. 이 예에서는 15초당 3개의 호출로 제한이 설정되었습니다. 개발자는 15초 후에 API 호출을 다시 시도할 수 있습니다.
참고
이 정책은 소비 계층에서는 지원되지 않습니다.
Swagger Petstore>디자인>모든 작업을 선택합니다.
인바운드 처리 섹션에서 코드 편집기(</>) 아이콘을 선택합니다.
빈 줄의
<inbound>
요소 내부에 커서를 놓습니다. 그런 다음, 화면 오른쪽 위 모서리에서 코드 조각 표시를 선택합니다.오른쪽 창의 액세스 제한 정책 아래에서 키당 호출 속도 제한을 선택합니다.
<rate-limit-by-key />
요소가 커서에 추가됩니다.<rate-limit-by-key />
요소의<inbound>
코드를 다음 코드로 수정합니다. 그런 다음 저장을 선택합니다.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
변환 테스트
이제 코드 편집기에서 코드를 살펴보면 정책이 다음 코드와 같습니다.
<policies>
<inbound>
<rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<outbound>
<set-header name="Custom" exists-action="override">
<value>"My custom value"</value>
</set-header>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
이 섹션의 나머지 부분에서는 이 문서에서 설정한 정책 변환을 테스트합니다.
사용자 지정 응답 헤더 테스트
Swagger Petstore>테스트를 선택합니다.
GET 상태별 애완동물 찾기 작업을 선택하고, 선택적으로 상태쿼리 매개 변수의 다른 값을 선택합니다. 보내기를 선택합니다.
보이는 것처럼 사용자 지정 응답 헤더가 추가되었습니다.
속도 제한 테스트
Swagger Petstore>테스트를 선택합니다.
상태별 반려동물 찾기 작업을 선택합니다. 보내기를 여러 번 연속으로 선택합니다.
구성된 기간 동안 너무 많은 요청을 보내면 429 너무 많은 요청 응답이 표시됩니다.
15초 이상 기다린 다음. 보내기를 다시 선택합니다. 이번에는 200 정상 응답이 표시됩니다.
Copilot 지원 받기
Copilot에서 AI 지원을 받아 API Management 정책 정의를 만들고 편집할 수 있습니다. Copilot를 사용하여 XML 구문을 알 필요 없이 특정 요구 사항과 일치하는 정책을 만들고 업데이트할 수 있습니다. 기존 정책에 대한 설명을 가져올 수도 있습니다. 또한 Copilot는 다른 API 관리 솔루션에서 구성했을 수 있는 정책을 번역하는 데 도움이 될 수 있습니다.
- Azure의 Microsoft Copilot는 Azure Portal에서 자연어 프롬프트에 대한 정책 작성 지원을 제공합니다. API Management 정책 편집기에서 정책을 작성하고 Copilot에 정책 섹션을 설명하도록 요청할 수 있습니다.
- Visual Studio Code의 Azure용 GitHub Copilot는 Visual Studio Code에서 정책 작성 지원을 제공하며, Visual Studio Code 용 Azure API Management 확장을 사용하여 정책 구성 속도를 높일 수 있습니다. 자연어를 사용하여 코필로트 채팅 또는 코필로 편집을 확인하여 정책 정의를 만들고 구체화할 수 있습니다.
프롬프트 예:
Generate a policy that adds an Authorization header to the request with a Bearer token.
부조종사에는 AI가 지원되므로 놀라움과 실수가 가능합니다. 자세한 내용은 Copilot 일반 사용 FAQ를 참조하세요.
요약
이 자습서에서는 다음 작업 방법을 알아보았습니다.
- API를 변환하여 사용자 지정 응답 헤더를 설정합니다.
- 속도 제한 정책(제한)을 추가하여 API 보호
- 변환 테스트
다음 단계
다음 자습서를 진행합니다.