目次

カスタムコンプライアンススタンダード

プレビュー で使用可能です。

カスタムコンプライアンススタンダードについて

カスタムコンプライアンススタンダードを使用すると、ルールにマッピングされるコントロールのリストから独自のコンプライアンススタンダードを作成できます。

注意: Pure RTMルール (ルールIDの先頭に「RTM」が付いているもの) は、現在、Custom Compliance Standardには含まれていません。

概念と用語

  1. Control: 自動または手動のプロセスで、組織を保護し、予防または検出手段によって組織の目標に対するリスクを最小限に抑えるように設計されています。

  2. Rule: AWS、GCP、Azure、またはConformityのルール。

  3. Compliance Standard: コントロールからルールへの体系化されたマッピング。

  4. Original Compliance Standard: カスタマイズなしで利用できる既成のコンプライアンススタンダードです。

  5. Level: カスタムコンプライアンススタンダードでは、コントロールを見出しの下に整理しています。カスタムコンプライアンススタンダードには任意の数の見出しを含めることができますが、コントロールを整理できるのは3レベルまでです。

  6. Custom Compliance Standard Editing Types

カスタムコンプライアンススタンダードは、次の2つの編集タイプのいずれかになります。

  • DRAFT: 作業中、つまり公開前のスタンダードを編集および更新できます。

  • PUBLISHED: 公開されたスタンダードを編集または更新することはできません。

スタンダードは「PUBLISH」せず、最終化されるまで「DRAFT」状態のままにしておくことをお勧めします。

PUBLISHED後のスタンダードを更新する必要がある場合は、別の名前またはバージョンで新しいスタンダードを作成し、編集を開始します。

元のコンプライアンススタンダードがアップデートされた場合は、カスタムコンプライアンススタンダードもアップデートして、引き続き正常に動作するようにする必要があります。古いスタンダードを引き続き使用するのではなく、同じ名前で異なるバージョンの新しいスタンダードを作成することをお勧めします。

APIを使用してカスタムコンプライアンススタンダードを Create/Read/Update/Delete (CRUD) する方法

カスタムコンプライアンススタンダードの作成、アップデート、削除、および取得については、APIリファレンスを参照してください。

カスタムコンプライアンススタンダードAPIの機能

  1. Visibility Toggling: POSTおよびPUT要求を使用してパラメータ isEnabledfalse に設定することで、UIのカスタムコンプライアンススタンダードを非表示にできます。
  2. Editing Modes: スタンダードが確定するまで、 type フィールドを DRAFT に設定できます。準備ができたら、PUT要求を使用して typePUBLISHED に設定し、以降の編集からロックできます。
  3. Versioning: version では、カスタムコンプライアンススタンダードのバージョンを設定できます。
  4. Level 3 Headings: 以前サポートされていた2つの見出しと比較して、最大3つのレベルの見出しを処理できます。
  5. External URL: externalUrl を各コントロールでリンクとして使用すると、特定のコントロールに関する追加情報を取得できます。
  6. Validation: ユーザスタンダードを検証し、デバッグに役立つエラーメッセージを提供します。

使用中のカスタムコンプライアンススタンダードの無効化または削除

アクティブなカスタムコンプライアンススタンダードが既存のレポート設定で使用されている場合、カスタムコンプライアンススタンダードを無効化または削除しようとするとエラーが表示されます。

カスタムコンプライアンススタンダードを無効化または削除できるのは、レポート設定が使用されなくなった後 (レポート設定が更新または削除された後) に限られます。詳細については、APIリファレンスを参照してください。

Conformity UIでアクセスできる機能

APIを介して作成されたカスタムコンプライアンススタンダードには、通常のスタンダードと同じ一連の機能があります。次の操作を実行できます。

  1. View: [Browse All Checks] の Standards & Frameworks セクションのカスタムコンプライアンススタンダード。
  2. Filter: 簡易フィルタまたはCQLのカスタムコンプライアンススタンダード。
  3. Create reports: カスタムコンプライアンススタンダードを使用し、PDFまたはCSV形式でダウンロードします。
  4. Schedule a report: カスタムコンプライアンススタンダードレポートの生成を自動化します。

例 - CIS Amazon Web Services Foundations Benchmark v2.0.0のカスタムコンプライアンススタンダードの作成

  1. 下の画像の注釈に従って、見出し、コントロールID、コントロールタイトルを変換し、必要なルールをコントロールにマッピングして POST /compliance-standards/custom エンドポイントにマッピングします。

  2. リクエストの送信後、UIからConformity Botを実行します。

  3. カスタムコンプライアンススタンダードのチェックを表示できるようになりました。

カスタムコンプライアンススタンダードの管理

次のシナリオでは、カスタムコンプライアンススタンダードを維持および更新する必要があります。

  1. Conformityによって新しいRuleがリリースされたとき。
  2. カスタムコンプライアンススタンダードの作成に使用された元のコンプライアンススタンダード定義がアップデートされたとき。

推奨される解決策

  1. GET /compliance-standards/custom/{id}からスタンダードを取得します。IDを忘れた場合は、 GET /compliance-standards/custom を使用してすべてのカスタムコンプライアンススタンダードのリストを取得し、編集する標準を検索できます。

  2. GET /compliance-standards/custom/{id} の結果を次のいずれかに貼り付けます。

  3. スタンダードの状態がDRAFTの場合は、PUT /compliance-standards/custom/{id}

  4. スタンダードの状態がPUBLISHEDの場合は、POST /compliance-standards/custom ( PUT エンドポイントでは PUBLISHEDの状態のスタンダードを編集できないため、新しいスタンダードを作成する必要があります)。

  5. スタンダードを編集してバージョンをアップデートし、マッピングを DRAFTまたは PUBLISHEDのいずれにするかを選択します。

  6. (オプション): 手順2で POST エンドポイントを使用した場合は、パラメータ isEnabledfalse に更新するか、 DELETE /compliance-standards/custom/{id}を使用して標準を完全に削除することで、以前の標準を非推奨にすることもできます。

カスタムコンプライアンススタンダードでの検証エラーのデバッグ

検証エラーが発生した場合、 ConformityはJSONポインタと問題の詳細を含む応答を送信します。エラーメッセージのデバッグに関する以下のヒントを参照してください。

  • Use of Array Indexes: エラーメッセージでは、エラーの正確な位置を示す値として配列インデックスが使用されます。たとえば、 "pointer": "/data/attributes/controls/1/awsRules" の場合、 1 という数値は配列内の2番目の項目を示します。

  • Use of Consistent Properties: Control配列は大きくなる可能性があるため、"aid": などの一貫性のあるプロパティを検索し、その数と配列インデックスを考慮して1を足した数で示される検索結果に移動できます。たとえば、下の画像では、2番目の検索結果に移動したことがわかります。問題が level1 の見出しの欠落と重複するルールであることが明確にわかります。

テンプレートの例

{
  "data": {
    "name": "My Custom Compliance Standard",
    "isEnabled": true,
    "version": "v1.0.0",
    "type": "DRAFT",
    "description": "This is a template custom compliance standard",
    "controls": [
      {
        "aid": "0.0.1",
        "title": "This is the title of my first control",
        "headings": {
          "level1": "Heading 1",
          "level2": "Heading 2",
          "level3": "Heading 3"
        },
        "externalUrl": "Insert a URL here to link to more information about this control",
        "awsRules": ["S3-001"],
        "azureRules": ["StorageAccounts-012"],
        "gcpRules": ["ResourceManager-001"]
      }
    ]
  }
}