すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:機密データのマスク

最終更新日:Aug 28, 2024

データを変換、出荷、または使用するときに、データマスキングルールを設定して、機密データの公開を減らすことができます。 これにより、データリークのリスクを効率的に軽減できます。 このトピックでは、さまざまなシナリオで関数を使用して機密データをマスクする方法について説明します。

背景情報

データマスキングは、携帯電話番号、銀行カード番号、電子メールアドレス、IPアドレス、AccessKeyペア、ID番号、URL、注文番号、文字列などの機密データをマスクするために一般的に使用されます。 Log Serviceコンソールでデータを変換する場合、正規表現による置換 (キー関数regex_replace) 、Base64トランスコード (キー関数base64_encoding) 、MD5エンコーディング (キー関数md5_encoding) 、str_translateマッピング (キー関数str_translate) 、grokキャプチャ (キー関数grok) 。 詳細については、「正規表現関数」、「Grok機能」、および「エンコードとデコード関数」をご参照ください。

シナリオ1: マスクの携帯電話番号

  • ソリューション

    ログエントリの携帯電話番号をマスクするには、regex_replace関数を使用します。

    • 生のログエントリ

      iphone: 13900001234
    • ドメイン固有言語 (DSL) オーケストレーション

      e_set(
          "sec_iphone",
          regex_replace(v("iphone"), r"(\d{0,3})\d{4}(\d{4})", replace=r"\1****\2"),
      )
    • 結果:

      iphone: 13900001234
      sec_iphone: 139****1234

Scenario 2: Mask銀行カード情報

  • ソリューション

    ログエントリの銀行カード情報 (銀行カード番号など) をマスクするには、regex_replace関数を使用します。

    • 生のログエントリ

      content: bank number is 491648411333978312 and credit card number is 4916484113339780
    • DSL オーケストレーション

      e_set(
          "bank_number",
          regex_replace(
              v("content"), r"([1-9]{1})(\d{14}|\d{13}|\d{11})(\d{4})", replace=r"****\3"
          ),
      )
    • 結果

      content: bank number is 491648411333978312 and credit card number is 4916484113339780 
      bank_number: bank number is ****8312 and credit card number is ****9780

シナリオ3: メールアドレスのマスク

  • ソリューション

    ログエントリのメールアドレスをマスクするには、regex_replace関数を使用します。

    • 生のログエントリ

      content: email is username@example.com
    • DSL オーケストレーション

      e_set(
          "email_encrypt",
          regex_replace(
              v("content"),
              r"[A-Za-z\d]+([-_.][A-Za-z\d]+)*(@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4})",
              replace=r"****\2",
          ),
      )
                                  
    • 結果

      content: email is username@example.com
      email_encrypt: email is ****@example.com

シナリオ4: AccessKeyペアのマスク

  • ソリューション

    ログエントリのAccessKeyペアをマスクするには、regex_replace関数を使用します。

    • 生のログエントリ

      content: ak id is <testAccessKey ID> and ak key is <testAccessKey Secret>
    • DSL オーケストレーション

      e_set(
          "akid_encrypt",
          regex_replace(
              v("content"),
              r"([a-zA-Z0-9]{4})(([a-zA-Z0-9]{26})|([a-zA-Z0-9]{12}))",
              replace=r"\1****",
          ),
      )
    • 結果

      content: ak id is <testAccessKey ID> and ak key is <testAccessKey Secret>
      akid_encrypt: ak id is rDhc**** and ak key is XQr1****

シナリオ5: マスクIPアドレス

  • ソリューション

    ログエントリのIPアドレスを抽出してマスクするには、regex_replace関数とgrok関数を使用します。

    • 生のログエントリ

      content: ip is 192.0.2.10
    • DSL オーケストレーション

      e_set("ip_encrypt",regex_replace(v('content'), grok('(%{IP})'), replace=r"****"))
    • 結果

      content: ip is 192.0.2.10
      ip_encrypt: ip is ****

Scenario 6: Mask IDカード番号

  • ソリューション

    ログエントリのIDカード番号をマスクするには、regex_replace関数とgrok関数を使用します。

    • 生のログエントリ

      content: Id card is 111222190002309999
    • DSL オーケストレーション

      e_set(
          "id_encrypt", regex_replace(v("content"), grok("(%{CHINAID})"), replace=r"\1****")
      )
    • 結果

      content: Id card is 111222190002309999
      id_encrypt: Id card is 111222****

シナリオ7: マスクURL

  • ソリューション

    ログエントリのURLをマスクするには、URLをプレーンテキストに変換し、Base64エンコードおよびデコード関数を使用してURLをトランスコードします。

    • 生のログエントリ

      url: https://www.aliyun.com/sls?logstore
    • DSL オーケストレーション

      e_set("base64_url",base64_encoding(v("url")))
    • 結果

      url: https://www.aliyun.com/sls?logstore
      base64_url: aHR0cHM6Ly93d3cuYWxpeXVuLmNvbS9zbHM/bG9nc3RvcmU=
      説明

      base64_urlフィールドの値をデコードするには、base64_decoding(v("base64_url") 関数を使用します。

シナリオ8: マスク注文番号

  • ソリューション

    ログエントリの注文番号をマスクし、他のユーザーが注文番号をデコードできないようにするには、MD5エンコード関数を使用して注文番号をエンコードします。

    • 生のログエントリ

      orderId: 20210101123456
    • DSL オーケストレーション

      e_set("md5_orderId",md5_encoding(v("orderId")))
    • 結果

      orderId: 20210101123456
      md5_orderId: 852751f9aa48303a5691b0d020e52a0a

シナリオ9: マスク文字列

  • ソリューション

    Toは弦ログエントリ、使用することができstr_翻訳機能マッピング設定するためのルールを弦。

    • 生のログエントリ

      data: message level is info_
    • DSL オーケストレーション

      e_set("data_translate", str_translate(v("data"),"aeiou","12345"))
    • 結果

      data: message level is info
      data_translate: m2ss1g2 l2v2l 3s 3nf4