目次

自動修復

自動修復 を使用すると、インフラストラクチャで自己修復機能を備えた Lambda 関数を実行して、セキュリティや管理のFailureをリアルタイムで修復できます。サポートされている 自動修復 Lambda 関数のリストについては、GitHubのページを参照してください。

大規模企業向けの自動修復の実装と、セキュリティギャップを埋めるためのカスタムLambdaの作成の詳細については、「 Conformity Platformによるセキュリティとコンプライアンスの自動修復の追加方法」を参照してください。

シナリオの例:ユーザがS3 バケット をS3アクセス制御リスト(ACL)で公開して読み取り可能にします。

コンテンツ

自動修復の仕組み

  1. Conformity は、リスクをルールのFailureとして識別します。
  2. Conformity は、指定されたSNSチャネルに通知を送信します。
  3. SNSトピックによって、Orchestrator Lambda関数 がトリガされ、S3 バケット 自動修復関数が呼び出されます。
  4. AutoRemediateS3-001関数 は、S3 バケット ACLをアップデートし、ルールのFailureを解決してセキュリティギャップを解消します。


自動修復を設定する

  1. official Serverless documentation の手順に従って、AWSアカウントをインストールし、 Serverless Frameworkにアクセスできるようにします。自動修復リポジトリの作業用コピーを作成し、次の手順に従います。

  2. 自動修復リポジトリの作業用コピーを作成します。

    1. Linux / Mac OS X / Windows にGitがインストールされていない場合はインストールしてください。

    2. 次のGitコマンドを実行します。
    git clone https://github.com/cloudconformity/auto-remediate.git


    3. ディレクトリを自動修復フォルダ内の関数に変更します。
    cd auto-remediate/functions

    4. 次のコマンドを使用してルール設定にアクセスします。
    nano config.js


    5. config.js ファイルのすべてのルールが、

    初期設定では設定の誤りを防ぐために'enabled': false に設定されています。値を次に変更して、ルールを手動で有効にする必要があります。

    'enabled': true



    6. 変更後:

    • キーボード操作 Ctrl-O を実行して、変更を書き込みます。
    • Enter キーを押して、変更を確定します。
    • Ctrl-Xのキーボード操作でコマンドラインエディタを終了します。

    7. 次のコマンドを実行します。

    • 次のコマンドを使用して、1レベル上のフォルダを「auto-remediate」フォルダに移動します。
      cd ..
    • 次のコマンドを使用して、node:modulesフォルダをAWSで使用できるようにします。 npm install


    8. 次のコマンドを実行して自動修復を配信します。

    serverless deploy --region [your AWS account region]

    たとえば

    serverless deploy --region us-east-2

    !!! note "" 自己修復機能を使用するには、AWSアカウントと同じリージョンに自動修復をデプロイすることをお勧めします。 RTM および Conformity Botによって実行されるため、チェックのFailureの検出は、配信のリージョンに依存しません。

    9. 配信が成功した場合:

    • CloudConformity というSNSトピックがAWSアカウントに自動的に作成されます。


    • autoremediate-v1-AutoRemediateOrchestratorという名前の Lambda関数 は、 CloudConformity SNSトピックに自動的にサブスクライブされます。


    10. Amazon SNS通信 チャネルを Conformity プラットフォームに統合し、有効にする通知を選択します。

    • Automatic notifications: 失敗したチェックは、メッセージがSNSチャネルに公開されると自動的に解決されます。
    • Manual notifications: チェックのFailureにSend via SNSボタンが表示されます。ボタンをクリックしてFailureを解決します。

自動修復の配信後にルールを有効または無効にする

  1. AWSコンソールで、 Services > Compute > Lambda > Functionsに移動します。
  2. auto-remediate-v1-AutoRemediateOrchestratorを検索して選択します。
  3. 設定を変更します。
    1. Configuration > Function code > Environment > auto-remediate-v1 > functions に移動します。
  4. [ config.js ]を選択し、自動修復ルールの設定を変更します。

自動修復の配信をテストする

  1. Amazon SNSチャネル の設定時に選択した 通信トリガ が次のいずれかであることを確認します。
    1. All Checksの通知を送信するように初期設定するか、
    2. EC2-002Rulesで選択できます。
  2. ルールを有効にする手順に従って、AutoRemediateEC2-002ルールが有効になっていることを確認します。

  3. AWSコンソールで、次の順に選択します Services > Compute > EC2 Security Groups

  4. [ Create Security Group]をクリックします。
    1. 名前と説明を入力し、VPCを選択します。
    2. [ Security group rules > Inbound ]で、Add Ruleをクリックします。:
      • Select Type: SSH
      • Source: Anywhere
      • Create をクリックします。

Manual notificationsを使用した解決

Manual notificationsのみを有効にしている場合は、次の手順に従ってFailureを解決してください。

  1. All Checks report に移動し、次の条件でルールをフィルタします。
    • Rules:EC2-002 (Unrestricted SSH Access)
    • Only show checks created less than:1日

  2. [Check failure]で、[ Send via SNS]をクリックします。

自動修復の解決を確認する

  1. AWSコンソールで、 Services > Compute > EC2> Security Groupsに移動します。手順4で作成したSecurity Group が使用できなくなっています。

  2. AWSコンソールで、 Services > Compute > Lambda > Functions > Select {auto-remediate function} > Monitoringに移動します。

    Lambda監視グラフを確認して、 auto-remediate-v1-AutoRemediateOrchestrator とそのサブ機能がトリガされているかどうかを確認することもできます。

自動修復プロジェクトへの貢献

独自の自動修復コードをforkして変更することはできますが、 Conformity はforkされたコードをサポートしません。ただし、プルリクエストを自動修復コードに送信することはできます。承認された場合は、そのコードがCustomer Success チームによってサポートされます。