Phần mở rộng ngăn chặn mất dữ liệu của Google Cloud

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Phiên bản: 1.3.0

Sử dụng tiện ích này để che khuất dữ liệu nhạy cảm khỏi nội dung và hình ảnh. Ví dụ: bạn có thể che số thẻ tín dụng, tên và số an sinh xã hội.

Điều kiện tiên quyết

Nội dung này cung cấp tài liệu tham khảo để định cấu hình và sử dụng tiện ích này. Trước khi sử dụng tiện ích của một proxy API bằng chính sách ExtensionAnnotation (Chú thích tiện ích), bạn phải:

  1. Bật API Google Cloud DLP cho dự án của bạn.

  2. Cấp quyền cho cấp truy cập mà bạn muốn cho tiện ích.

  3. Sử dụng Bảng điều khiển của GCP để tạo khoá cho tài khoản dịch vụ.

  4. Sử dụng nội dung của tệp JSON của khoá thu được khi thêm và định cấu hình tiện ích bằng cách sử dụng tài liệu tham khảo về cấu hình.

Giới thiệu về tính năng Ngăn chặn mất dữ liệu (DLP) của Cloud

Ngăn chặn mất dữ liệu (DLP) của Cloud là một API dùng để kiểm tra văn bản, hình ảnh và các dữ liệu khác nhằm xác định và quản lý dữ liệu nhạy cảm.

Để biết thêm thông tin, hãy xem bài viết Tổng quan về DLP. Để tham khảo API mà tiện ích này hiển thị, hãy xem API Ngăn chặn mất dữ liệu (DLP) của Cloud.

Mẫu

Các ví dụ sau minh hoạ cách định cấu hình tính năng hỗ trợ các thao tác với tiện ích Cloud DLP bằng chính sách ExtensionAnnotation.

Để giúp việc thử mã mẫu này trở nên dễ dàng hơn, những ví dụ sau sử dụng chính sách AssignmentMessage nhằm đặt các giá trị biến luồng và truy xuất các giá trị phản hồi của tiện ích để hiển thị trong công cụ Theo dõi.

Mặt nạ có các ngôi sao

Ví dụ này sử dụng thao tác deidentifyWithMask để che giấu các loại văn bản đã chỉ định bằng một ký tự được chỉ định trong chính sách – ở đây là ký tự *.

Chính sách AttributionMessage sau đây đặt biến request.content nhằm mục đích minh hoạ. Thông thường, bạn sẽ truy xuất nội dung yêu cầu từ yêu cầu của ứng dụng khách.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
    <DisplayName>Set Variable</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <AssignVariable>
        <Name>request.content</Name>
        <Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
    </AssignVariable>
</AssignMessage>

Chính sách ExtensionAnnotation sau đây truy xuất giá trị biến request.content và chuyển giá trị đó sang một tiện ích Cloud DLP (ở đây, được gọi là example-dlp). Tiện ích đó đã được định cấu hình để che giấu các giá trị dựa trên infoTypes URLEMAIL_ADDRESS.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
    <DisplayName>Data Loss Prevention Extension Callout</DisplayName>
    <Connector>example-dlp</Connector>
    <Action>deidentifyWithMask</Action>
    <Input><![CDATA[{
        "text" : "{request.content}",
        "mask" : "*"
    }]]></Input>
    <Output>masked.output</Output>
</ConnectorCallout>

Chính sách AttributionMessage sau đây truy xuất kết quả của tiện ích để hiển thị trong công cụ Theo dõi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
    <DisplayName>Get DLP Output</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{masked.output}</Payload>
    </Set>
</AssignMessage>

Sau đây là ví dụ về kết quả của mã này.

{"text":"Visit my site at ******************* Or contact me at *****************."}

Mặt nạ có tên

Ví dụ này sử dụng thao tác deidentifyWithType để che giấu các loại văn bản được chỉ định bằng chính tên loại thông tin. Ví dụ: Thao tác này sẽ thay thế địa chỉ email gladys@example.com bằng EMAIL_ADDRESS.

Chính sách AttributionMessage sau đây đặt biến request.content nhằm mục đích minh hoạ. Thông thường, bạn sẽ truy xuất nội dung yêu cầu từ yêu cầu của ứng dụng khách.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
    <DisplayName>Set Variable</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <AssignVariable>
        <Name>request.content</Name>
        <Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
    </AssignVariable>
</AssignMessage>

Chính sách Tiện ích mở rộng sau đây truy xuất giá trị biến request.content và chuyển giá trị đó sang một tiện ích Cloud DLP (ở đây, được gọi là example-dlp). Tiện ích đó đã được định cấu hình để che giấu các giá trị dựa trên URLEMAIL_ADDRESS infoTypes.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
    <DisplayName>Data Loss Prevention Extension Callout</DisplayName>
    <Connector>example-dlp</Connector>
    <Action>deidentifyWithType</Action>
    <Input><![CDATA[{
        "text" : "{request.content}"
    }]]></Input>
    <Output>masked.output</Output>
</ConnectorCallout>

Chính sách AttributionMessage sau đây truy xuất kết quả của tiện ích để hiển thị trong công cụ Theo dõi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
    <DisplayName>Get DLP Output</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{masked.output}</Payload>
    </Set>
</AssignMessage>

Sau đây là ví dụ về kết quả của mã này.

{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}

Thao tác

deidentifyWithMask

Xoá dữ liệu nhạy cảm khỏi text và che dữ liệu bằng ký tự mask. Thao tác này sẽ che các phần của text do thuộc tính infoTypes chỉ định trong cấu hình tiện ích.

Khi bạn ẩn dữ liệu nhạy cảm, các ký tự bằng một ký hiệu sẽ thay thế, chẳng hạn như dấu hoa thị (*) hoặc dấu băm (#). Bạn có thể định cấu hình các loại dữ liệu nhạy cảm trong cấu hình tiện ích.

Cú pháp

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify",
  "mask" : "masking-character"
}]]></Input>

Ví dụ:

Trong ví dụ sau, dữ liệu đầu vào để che giấu là địa chỉ email được lưu trữ trong biến luồng input.email.address. Để hỗ trợ ví dụ cụ thể này, bạn phải định cấu hình tiện ích này để hỗ trợ loại thông tin EMAIL_ADDRESS. Để biết danh sách các loại thông tin, hãy xem Tài liệu tham khảo về trình phát hiện loại thông tin.

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}",
    "mask" : "*"
}]]></Input>
<Output>masked.output</Output>

Kết quả cho ví dụ này sẽ như sau:

{"text":"*****************"}

Yêu cầu thông số

Thông số Mô tả Loại Mặc định Bắt buộc
văn bản Văn bản cần loại bỏ thông tin nhận dạng. Chuỗi Không có. Có.
đeo-khẩu-trang Ký tự cần dùng để che dữ liệu nhạy cảm. Chuỗi Không có. Có.

Phản hồi

Văn bản đầu vào chứa các giá trị của infoTypes đã chỉ định sẽ được thay thế bằng ký tự được chỉ định. Ví dụ:

{"text":"*********"}

deidentifyWithTemplate

Loại bỏ dữ liệu nhạy cảm trong nội dung văn bản bằng một mẫu sẽ định cấu hình văn bản cần loại bỏ thông tin nhận dạng và cách xử lý.

Mẫu rất hữu ích trong việc phân tách cấu hình, chẳng hạn như nội dung bạn kiểm tra và cách bạn loại bỏ thông tin nhận dạng đó khỏi quá trình triển khai lệnh gọi API. Mẫu là cách để sử dụng lại cấu hình và đảm bảo tính nhất quán giữa người dùng và tập dữ liệu.

Trong mẫu của mình, bạn sẽ chỉ định infoTypes biểu thị nội dung cần loại bỏ thông tin nhận dạng. Để biết danh sách các infoTypes, hãy xem Tài liệu tham khảo về trình phát hiện InfoType. Loại bỏ thông tin nhận dạng cho các phần văn bản do thuộc tính infoTypes chỉ định trong mẫu.

Cú pháp

<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
  "templateName" : "path-to-template"
}]]></Input>

Ví dụ:

Trong ví dụ sau, đầu vào để loại bỏ thông tin nhận dạng là nội dung yêu cầu do biến luồng request.content mang.

<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
    "text" : "{request.content}"
    "templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>

Kết quả cho ví dụ này sẽ là nội dung yêu cầu đã loại bỏ thông tin nhận dạng.

Yêu cầu thông số

Thông số Mô tả Loại Mặc định Bắt buộc
văn bản Văn bản cần loại bỏ thông tin nhận dạng. Đây chính là cơ sở để quá trình loại bỏ thông tin nhận dạng hoạt động. Đối tượng Không có. Có.
templateName Mẫu để sử dụng. Đây sẽ là một đường dẫn đến mẫu có dạng sau: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Khi bạn tạo mẫu bằng API Google, hãy dùng giá trị thuộc tính name của phản hồi làm templateName. Chuỗi Không có. Có.

Phản hồi

Văn bản đầu vào chứa các giá trị của infoTypes được chỉ định sẽ được thay thế bằng tên infoType.

deidentifyWithType

Loại bỏ thông tin nhận dạng dữ liệu nhạy cảm trong nội dung văn bản, thay thế từng giá trị khớp bằng tên của infoType. Để biết danh sách các infoTypes, hãy xem Tài liệu tham khảo về trình phát hiện InfoType. Thao tác này sẽ che các phần của text do thuộc tính infoTypes chỉ định trong cấu hình tiện ích.

Trong ví dụ sau, dịch vụ nhận ra số điện thoại, sau đó thay thế bằng tên của chính infoType.

  • Văn bản nhập:

    John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.

  • Văn bản kết quả:

    John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.

Cú pháp

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
}]]></Input>

Ví dụ:

Trong ví dụ sau, dữ liệu đầu vào để che giấu là địa chỉ email được lưu trữ trong biến luồng input.email.address. Để hỗ trợ ví dụ cụ thể này, bạn phải định cấu hình tiện ích này để hỗ trợ loại thông tin EMAIL_ADDRESS. Để biết danh sách các loại thông tin, hãy xem Tài liệu tham khảo về trình phát hiện loại thông tin.

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}"
}]]></Input>

Kết quả cho ví dụ này sẽ như sau:

{"text":"EMAIL_ADDRESS"}

Yêu cầu thông số

Thông số Mô tả Loại Mặc định Bắt buộc
văn bản Văn bản cần loại bỏ thông tin nhận dạng. Chuỗi Không có. Có.

Phản hồi

Văn bản đầu vào chứa các giá trị của infoTypes được chỉ định sẽ được thay thế bằng tên infoType. Ví dụ:

{"text":"EMAIL_ADDRESS"}

redactImage

Loại bỏ văn bản thuộc một trong các danh mục infoType. Nội dung bị loại bỏ được phát hiện và che khuất bằng một hình chữ nhật mờ. Thao tác này sẽ che các phần của image_data do thuộc tính infoTypes chỉ định trong cấu hình tiện ích.

Để biết danh sách các infoTypes, hãy xem Tài liệu tham khảo về trình phát hiện InfoType.

Yêu cầu thông số

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Thông số Mô tả Loại Mặc định Bắt buộc
image_data Dữ liệu hình ảnh được mã hoá theo base64. Chuỗi Không có. Có.
image_type Hằng số của loại hình ảnh. Các giá trị có thể sử dụng là IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG. Chuỗi Không có. Có.

Phản hồi

Hình ảnh có văn bản đã bị che khuất.

Tham chiếu cấu hình

Sử dụng mã sau khi bạn định cấu hình và triển khai tiện ích này để sử dụng trong proxy API. Để biết các bước định cấu hình một tiện ích bằng bảng điều khiển Apigee, hãy xem bài viết Thêm và định cấu hình tiện ích.

Các thuộc tính tiện ích phổ biến

Các thuộc tính sau có sẵn cho mỗi tiện ích.

Tài sản Mô tả Mặc định Bắt buộc
name Tên mà bạn đang đặt cho cấu hình của tiện ích này. Không có
packageName Tên của gói tiện ích do Apigee Edge cung cấp. Không có
version Số phiên bản của gói tiện ích mà bạn đang định cấu hình tiện ích. Không có
configuration Giá trị cấu hình cụ thể cho tiện ích bạn đang thêm. Xem Thuộc tính cho gói tiện ích này Không có

Các thuộc tính của gói tiện ích này

Chỉ định giá trị cho các thuộc tính cấu hình sau dành riêng cho tiện ích này.

Thuộc tính Mô tả Mặc định Bắt buộc
projectId Mã dự án GCP đã bật API Ngăn chặn mất dữ liệu của Cloud. Không có. Có.
infoTypes Các loại thông tin của dữ liệu nhạy cảm. Nếu bị bỏ qua, dịch vụ sẽ phát hiện mọi loại tích hợp sẵn. Để biết danh sách các loại infoTypes được dịch vụ Google Cloud DLP hỗ trợ, hãy xem Tài liệu tham khảo về trình phát hiện loại thông tin. Không có. STT
thông tin xác thực Khi được nhập vào bảng điều khiển Apigee Edge, đây là nội dung của tệp khoá tài khoản dịch vụ của bạn. Khi được gửi qua API quản lý, giá trị này là một giá trị được mã hoá base64 được tạo từ tệp khoá tài khoản dịch vụ. Không có. Có.