<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
Edge에서 API 호출을 디버그할 때 콘텐츠에 민감한 정보(예: 신용카드나 PHI (개인 식별 건강 정보)를 포함할 수 없습니다.
Edge는 민감한 정보를 숨기거나 마스킹하는 Trace 및 디버그 세션.
민감한 정보 숨기기
'private.
' 프리픽스가 추가된 커스텀 변수를 만들어 Trace 도구 및 디버그 세션에 민감한 정보가 표시되지 않도록 할 수 있습니다.
예를 들어 Key Value Map Operations 정책을 사용하여 암호화된 키 값 맵에서 값을 검색할 때 값이 Trace 또는 디버그 세션에 값이 나타나지 않도록 다음과 같이 변수 이름을 지정합니다.
<Get assignTo="private.hiddenData">
다음에 설명하는 데이터 마스킹을 사용하는 대신 민감한 변수를 숨길 수 있습니다. 숨김과 마스킹의 차이점은 숨겨진 변수는 전혀 표시되지 않고 마스킹된 값은 Trace 및 디버그 세션에서 별표로 대체된다는 점입니다.
데이터가 암호화된 키 값 맵과 같은 암호화된 데이터 저장소에서 제공된 경우에도 'private.
' 프리픽스가 없는 변수는 Trace 및 디버그 세션에서 명확한 텍스트로 표시됩니다. 이러한 값을 마스킹하려면 마스킹(아래)을 사용합니다.
민감한 정보 마스킹
Edge를 사용하면 '마스크 구성'을 정의할 수 있습니다. trace 및 디버그 세션에서 특정 데이터를 마스킹할 수 있습니다. 마스킹 구성은 전역 (조직 수준) 또는 로컬 (API에서) 설정 가능 사용할 수 있습니다.
데이터가 마스킹되면 데이터는 trace 출력에서 별표로 대체됩니다. 예를 들면 다음과 같습니다.
<description>**********</description>
마스크 구성 사용
마스크 구성을 사용하면 다음 소스에서 민감한 정보를 식별할 수 있습니다. <ph type="x-smartling-placeholder">- </ph>
- XML 페이로드: XPath를 사용하여 요청 또는 응답 메시지 페이로드에서 필터링할 XML 요소를 식별합니다.
- JSON 페이로드: JSONPath를 사용하여 요청 또는 응답 메시지 페이로드에서 필터링할 JSON 속성을 식별합니다.
- 흐름 변수: 디버그 출력에서 마스킹해야 하는 변수 목록을 지정할 수 있습니다.
request.content
,response.content
,message.content
흐름 변수를 지정하면 요청/응답 본문도 마스킹됩니다.
마스크 구성의 기본 구조는 다음 XML 표현으로 표시됩니다.
<MaskDataConfiguration name="default"> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:Greeting/myco:User</XPathRequest> </XPathsRequest> <XPathsResponse> <XPathResponse>/myco:Greeting/myco:User</XPathResponse> </XPathsResponse> <JSONPathsRequest> <JSONPathRequest>$.store.book[*].author</JSONPathRequest> </JSONPathsRequest> <JSONPathsResponse> <JSONPathResponse>$.store.book[*].author</JSONPathResponse> </JSONPathsResponse> <XPathsFault> <XPathFault>/myco:Greeting/myco:User</XPathFault> </XPathsFault> <JSONPathsFault> <JSONPathFault>$.store.book[*].author</JSONPathFault> </JSONPathsFault> <Variables> <Variable>request.header.user-agent</Variable> <Variable>request.formparam.password</Variable> </Variables> </MaskDataConfiguration>
마스크 구성 구성 리소스
다음 요소를 사용하여 마스크 구성을 정의합니다.
필드 이름 | 설명 | 기본값 | 필수 여부 |
---|---|---|---|
XPathsRequest | XML 페이로드 (있는 경우)에 대해 평가될 XPath 표현식의 목록입니다. 요청 경로 성공적으로 확인되는 모든 XPath는 XML 값을 얻습니다. 요소가 마스킹됩니다. | 해당 사항 없음 | 아니요 |
XPathsResponse | XML 페이로드 (있는 경우)에 대해 평가될 XPath 표현식의 목록입니다. 응답 경로 성공적으로 확인되는 모든 XPath는 XML 값을 얻습니다. 요소가 마스킹됩니다. | 해당 사항 없음 | 아니요 |
JSONPathsRequest | 다음에서 JSON 페이로드 (있는 경우)를 기준으로 평가될 JSONPath 표현식의 목록입니다. 요청 경로 성공적으로 확인되는 JSONPath는 JSON 속성을 마스킹 중입니다. | 해당 사항 없음 | 아니요 |
JSONPathsResponse | 다음에서 JSON 페이로드 (있는 경우)를 기준으로 평가될 JSONPath 표현식의 목록입니다. 응답 경로 성공적으로 확인되는 JSONPath는 JSON 속성을 마스킹 중입니다. | 해당 사항 없음 | 아니요 |
XPathsFault | XML 페이로드 (있는 경우)에 대해 평가될 XPath 표현식의 목록입니다. 오류 흐름 (흐름의 한 지점에서 오류가 발생하면 실행됨)을 제공합니다. 모든 XPath XML 요소의 값이 마스킹됩니다. | 해당 사항 없음 | 아니요 |
JSONPathsFault | 다음에서 JSON 페이로드 (있는 경우)를 기준으로 평가될 JSON 표현식의 목록입니다. 오류 흐름 (흐름의 한 지점에서 오류가 발생하면 실행됨)을 제공합니다. 모든 JSONPath JSON 속성 값이 마스킹됩니다. | 해당 사항 없음 | 아니요 |
변수 |
값을 마스킹할 변수 목록 (사전 정의 또는 맞춤)입니다. 기본 변수의 목록은 변수 참조를 확인하세요. |
해당 사항 없음 | 아니요 |
마스크 구성 API
마스크 구성은 업로드 및 다운로드하는 XML 또는 JSON 형식의 파일로 정의됩니다. RESTful 관리 API를 사용합니다. 데이터 마스킹 API의 전체 목록은 데이터 마스크를 참조하세요.
기존 마스크 구성을 보려면 API 리소스를 호출하기만 하면 됩니다.
조직의 /maskconfigs
:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email
이 예에서는 Basic 문법을 보여줍니다. 를 참조하세요. 다음과 같은 다른 유형의 인증을 사용할 수도 있습니다. Oauth2 또는 SAML.
특정 API 프록시에 정의된 마스크 구성을 보려면
/maskconfigs
API:
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
특정 마스크 구성을 보려면 마스크 이름을 지정합니다.
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs/default \ -u email
$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/default \ -u email
마스크 구성을 만들려면 POST 동사를 사용하여 마스크를 정의하는 페이로드를 제출하세요. 구성:
$ curl -H "Content-type:text/xml" -X POST -d \ '<MaskDataConfiguration name="default"> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:Greeting/myco:User</XPathRequest> </XPathsRequest> <XPathsResponse> <XPathResponse>/myco:Greeting/myco:User</XPathResponse> </XPathsResponse> <JSONPathsRequest> <JSONPathRequest>$.store.book[*].author</JSONPathRequest> </JSONPathsRequest> <JSONPathsResponse> <JSONPathResponse>$.store.book[*].author</JSONPathResponse> </JSONPathsResponse> <XPathsFault> <XPathFault>/myco:Greeting/myco:User</XPathFault> </XPathsFault> <JSONPathsFault> <JSONPathFault>$.store.book[*].author</JSONPathFault> </JSONPathsFault> <Variables> <Variable>request.header.user-agent</Variable> <Variable>request.formparam.password</Variable> </Variables> </MaskDataConfiguration>' \ https://api.enterprise.apigee.com/v1/o/{org_name}/maskconfigs \ -u email특정 API 프록시로 범위가 지정된 마스크 구성을 만들려면 다음 안내를 따르세요.
$ curl -H "Content-type:text/xml" -X POST -d \ '<MaskDataConfiguration name="default"> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:Greeting/myco:User</XPathRequest> </XPathsRequest> <XPathsResponse> <XPathResponse>/myco:Greeting/myco:User</XPathResponse> </XPathsResponse> <JSONPathsRequest> <JSONPathRequest>$.store.book[*].author</JSONPathRequest> </JSONPathsRequest> <JSONPathsResponse> <JSONPathResponse>$.store.book[*].author</JSONPathResponse> </JSONPathsResponse> <XPathsFault> <XPathFault>/myco:Greeting/myco:User</XPathFault> </XPathsFault> <JSONPathsFault> <JSONPathFault>$.store.book[*].author</JSONPathFault> </JSONPathsFault> <Variables> <Variable>request.header.user-agent</Variable> <Variable>request.formparam.password</Variable> </Variables> </MaskDataConfiguration>' \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs \ -u email
DELETE 동사를 사용하여 마스크 구성을 삭제할 수 있습니다.
$ curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/maskconfigs/{maskconfig_name} \ -u email
이 예에서는 Basic 문법을 보여줍니다. 를 참조하세요. 다음과 같은 다른 유형의 인증을 사용할 수도 있습니다. Oauth2 또는 SAML.
DELETE 작업에 대한 응답은 메시지가 없는 HTTP 코드 204
입니다.
있습니다.
XML 네임스페이스 마스킹
XML 페이로드에 네임스페이스가 정의되지 않으면, 마스크 구성에는 XPATH 정의에 <Namespace>
요소가 필요하지 않습니다. XML 페이로드가 기본 네임스페이스를 사용하는 경우에도 마찬가지입니다.
예를 들어 XML 페이로드는 네임스페이스를 정의하지 않습니다.
<employee> <name>abc</name> <age>50</age> </employee>
따라서 마스크 구성에는 <Namespace>
요소가 필요하지 않습니다.
<MaskDataConfiguration> <XPathsRequest> <XPathRequest>/employee/name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
XML 페이로드에 네임스페이스와 프리픽스가 포함된 경우에는 다음과 같습니다.
<myco:employee xmlns:myco="http://example.com"> <myco:name>xyz</myco:name> <myco:age>50</myco:age> </myco:employee>
그러면 마스크 구성 정의에 <Namespace>
요소가 포함되어야 합니다.
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>
XML 페이로드에 네임스페이스가 있지만 프리픽스가 없는 경우 기본 네임스페이스를 의미합니다.
<employee xmlns="http://example.com"> <name>xyz</name> <age>50</age> </employee>
그러면 마스크 구성에 여전히 <Namespace>
요소가 포함되어야 합니다.
<MaskDataConfiguration> <Namespaces> <Namespace prefix="myco">http://example.com</Namespace> </Namespaces> <XPathsRequest> <XPathRequest>/myco:employee/myco:name</XPathRequest> <XPathsRequest> </MaskDataConfiguration>