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: 2.0.0

Sử dụng tiện ích này để làm mờ dữ liệu nhạy cảm trong nội dung và hình ảnh. Ví dụ: bạn có thể loại bỏ 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 thông tin 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 từ một proxy API bằng chính sách ExtensionCallout, bạn phải:

  1. Bật API DLP của Google Cloud 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 GCP Console để tạo khoá cho tài khoản dịch vụ.

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

Giới thiệu về tính năng Cloud Data Loss Prevention (DLP)

Ngăn chặn mất dữ liệu (DLP) trên đám mây 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) trên đám mây.

Mẫu

Các ví dụ sau đây minh hoạ cách định cấu hình tính năng hỗ trợ cho các hành động của tiện ích Cloud DLP bằng cách sử dụng chính sách ExtensionCallout.

Để giúp bạn dễ dàng thử mã mẫu này hơn, các ví dụ này sử dụng chính sách AssignMessage để đặt giá trị biến flow và truy xuất giá trị phản hồi của tiện ích để hiển thị trong Công cụ theo dõi.

Ví dụ này sử dụng thao tác deidentifyWithMask để che 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 AssignMessage sau đây đặt biến request.content cho 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 ExtensionCallout sau đây truy xuất giá trị biến request.content và truyền giá trị đó đến một tiện ích Cloud DLP (ở đây gọi là example-dlp). Tiện ích đó đã được định cấu hình để che 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 AssignMessage sau đây sẽ truy xuất đầu ra 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 *****************."}

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

Chính sách AssignMessage sau đây đặt biến request.content cho 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 ExtensionCallout sau đây truy xuất giá trị biến request.content và truyền giá trị đó đến một tiện ích Cloud DLP (ở đây gọi là example-dlp). Tiện ích đó đã được định cấu hình để che 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>deidentifyWithType</Action>
    <Input><![CDATA[{
        "text" : "{request.content}"
    }]]></Input>
    <Output>masked.output</Output>
</ConnectorCallout>

Chính sách AssignMessage sau đây sẽ truy xuất đầu ra 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á thông tin nhận dạng khỏi dữ liệu nhạy cảm trong 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.

Tính năng che giấu dữ liệu nhạy cảm sẽ thay thế các ký tự bằng một ký hiệu, chẳng hạn như dấu hoa thị (*) hoặc dấu thăng (#). 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.

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

Trong ví dụ sau, dữ liệu đầu vào để che là một đị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ợ infoType EMAIL_ADDRESS. Để biết danh sách các infoType, hãy xem Tài liệu tham khảo về trình phát hiện InfoType.

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

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

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

Tham số yêu cầu

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ự 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 có các giá trị của infoTypes được chỉ định được thay thế bằng ký tự được chỉ định. Ví dụ:

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

deidentifyWithTemplate

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

Mẫu rất hữu ích cho việc 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 cấu hình đó khỏi quá trình triển khai lệnh gọi API. Mẫu cung cấp một 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, bạn sẽ chỉ định infoTypes đại diện cho nội dung cần loại bỏ thông tin nhận dạng. Để biết danh sách các infoType, hãy xem Tài liệu tham khảo về trình phát hiện InfoType. Tính năng loại bỏ thông tin nhận dạng sẽ che những phần văn bản do thuộc tính infoTypes chỉ định trong mẫu.

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

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

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

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

Tham số yêu cầu

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 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ẽ sử dụng. Đây sẽ là đường dẫn đến mẫu ở dạng sau: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Khi bạn tạo mẫu bằng API Google, hãy sử 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 có các giá trị của infoTypes được chỉ định được thay thế bằng tên infoType.

deidentifyWithType

Xoá 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ị trùng khớp bằng tên của infoType. Để biết danh sách các infoType, 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ụ sẽ nhận dạng số điện thoại, sau đó thay thế bằng tên của chính infoType.

  • Văn bản đầu vào:

    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.

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

Trong ví dụ sau, dữ liệu đầu vào để che là một đị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ợ infoType EMAIL_ADDRESS. Để biết danh sách các infoType, hãy xem Tài liệu tham khảo về trình phát hiện InfoType.

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

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

{"text":"EMAIL_ADDRESS"}

Tham số yêu cầu

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 có các giá trị của infoTypes được chỉ định được thay thế bằng tên infoType. Ví dụ:

{"text":"EMAIL_ADDRESS"}

redactImage

Xoá bỏ văn bản thuộc một trong các danh mục infoType. Nội dung đã bị loại bỏ sẽ đượ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 infoType, hãy xem Tài liệu tham khảo về trình phát hiện InfoType.

Tham số yêu cầu

<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á bằng 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ị loại bỏ.

Tài liệu tham khảo về cấu hình

Hãy sử dụng nội dung sau đây 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 tiện ích bằng bảng điều khiển Apigee, hãy xem phần Thêm và định cấu hình tiện ích.

Các thuộc tính mở rộng 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ó

Thuộc tính cho gói tiện ích này

Chỉ định giá trị cho các thuộc tính cấu hình sau đây 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 Cloud Data Loss Prevention. Không có. Có.
infoTypes Loại thông tin của dữ liệu nhạy cảm. Nếu bạn bỏ qua, dịch vụ sẽ phát hiện tất cả các loại tích hợp. Để biết danh sách các infoType được dịch vụ Google Cloud DLP hỗ trợ, hãy xem phần Tài liệu tham khảo về Trình phát hiện infoType. Không có. STT
thông tin xác thực Khi 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ụ. Khi được gửi qua API quản lý, đâ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ó.