監視でのシークレットを使用した機密情報のマスキング

非公開の場所で実行する監視では、ヘッダー、トークン値、ユーザー名、パスワード、本文の値などの機密情報をマスクできます。

ヘッダー情報をマスクする手順は、次のとおりです。

  1. シークレットマネージャーでマスクする情報の​共有シークレットを設定します​。

  2. シークレットマネージャーで情報を使用する​監視を変更します​。

  3. シークレットにアクセスする​権限を監視に付与します​。これにより、シークレットの別名が作成されます。

  4. 変更をデプロイするには、機能監視に​変更した監視をアップロードします​。

制限事項

  • 機能監視では、Anypoint シークレット監視の対称キーの共有シークレット種別のみが機能します。

  • テストスイートでは、非公開の場所からそのスイートでテストを実行する場合にのみ共有シークレットの別名を使用できます。

Anypoint シークレットマネージャーでシークレットを設定する

非公開の場所から実行するテストで機密情報を秘密にしておくには、シークレットマネージャーで共有シークレットを作成します。

共有シークレットを設定する手順は、次のとおりです。

  1. シークレットグループを開くか、新規作成します。BAT CLI を使用している環境にグループを作成します。

    BAT CLI を現在使用している環境を確認するには、次の操作を行います。

    1. コマンド ​bat whoami​ を実行します。

      出力には環境の ID があります。

    2. アクセス権のある環境をリストするには、コマンド ​bat environment ls​ を実行します。

    3. bat whoami​ コマンドの ID とリストされた環境の ID を照合します。

    4. シークレットグループが含まれる環境に切り替える必要がある場合、コマンド ​bat environment switch name​ を実行します。​name​ は環境の名前です。

  2. [Shared Secret (共有シークレット)]​ を選択します。

  3. [Type (種別)]​ 項目で ​[Symmetric Key (対称キー)]​ を選択します。

  4. [Key (キー)]​ 項目に、Base64 文字列としてエンコードされた機密情報を貼り付けます。

  5. Base64 文字列を ​[Confirm Key (キーを確認)]​ 項目に貼り付けます。

シークレットを監視に追加する

シークレットマネージャーで設定した情報を使用するように監視を変更します。

シークレットを監視に追加する手順は、次のとおりです。

  1. 監視を作成またはダウンロードします。​「監視の作成」​または​「監視のダウンロード」​を参照してください。

  2. main.dwl​ ファイルを変更して、機密情報をシークレットマネージャーで設定したクライアント ID とクライアントシークレットに置き換えます。

    次の例では、ヘッダーの機密情報がマスクされます。'clientId-alias' と 'clientSecret-alias' は、シークレットマネージャーに保存されているシークレットの別名です。別名の生成方法については、「​シークレットへのアクセス権を監視に付与する​」を参照してください。

    import * from bat::BDD
    import * from bat::Assertions
    
    var cliId = secret('clientId-alias') default 'Client Not Found'
    var cliSecret = secret('clientSecret-alias') default 'Secret Not Found'
    
    suite("HTTP Monitor") in [
      it should "Assert endpoint: http://status-coder.ir-e1.cloudhub.io/status?code=200&reason=Ok"" in [
        GET `http://status-coder.ir-e1.cloudhub.io/status?code=200&reason=Ok` with {
          "headers": {
            "client_id": cliId,
            "client_secret": cliSecret
          }
        } assert [
            $.response.status mustEqual 200
        ]
      ]
    ]

監視の ​main.dwl​ファイルを変更してシークレット情報をコードに追加したら、シークレットマネージャーで設定したシークレットへのアクセス権を監視に付与します。「​シークレットへのアクセス権を監視に付与する​」を参照してください。

シークレットへのアクセス権を監視に付与する

監視を変更してシークレット情報を追加したら、シークレットへのアクセス権を監視に付与します。BAT CLI は、実行時に別名を使用して共有シークレットを参照します。

シークレットへのアクセス権を監視に付与します。

  1. Anypoint シークレットマネージャーでシークレットを設定する​ で取得した新しい共有シークレットの名前をコピーします。

  2. コマンドプロンプトで、共有シークレットの別名を指定して ​bat grant​ コマンドを実行します。このコマンドを実行すると、BAT CLI はテストスイートの ​bat.yaml​ ファイルに ​secrets​ という名前のセクションを作成します (セクションがまだ存在していない場合)。そのセクションで、BAT CLI は次のインデントされた行を追加します。

    alias:
     secretId: "secret-ID"
    • alias​: bat grant​ コマンドで指定した別名。

    • secret-ID​: Anypoint シークレットマネージャー内のシークレットの ID。この ID は ASM には表示されません。そのため、​bat.yaml​ ファイルを確認して ID から特定のシークレットを連想することはできません。BAT CLI は、この ID を使用して別名に関連付けたシークレットを参照します。

更新された監視のデプロイ

前の手順が完了したら、​「監視のアップロード」​に記載されているように監視をアップロードします。