翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
でのコンプライアンススキャン AWS OpsWorks for Chef Automate
重要
AWS OpsWorks for Chef Automate は 2024 年 5 月 5 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。既存のお客様は、 Chef SaaS または代替ソリューションに移行することをお勧めします。ご質問がある場合は、 AWS re:Post
コンプライアンススキャンを使用すると、事前定義されたポリシー (ルールとも呼ばれる) に基づいてインフラストラクチャ内の管理対象ノードのコンプライアンスを追跡できます。Compliance のビューを使用すると、アプリケーションの脆弱性と非準拠設定を定期的に監査できます。Chef には、コンプライアンススキャンに使用できる事前定義された 100 個を超える Compliance プロファイル (特定のノード設定に適用するルールの集合) が用意されています。また、Chef InSpec の言語
サーバーでまだ Chef Automate 2.0 が実行されていない場合は、Audit クックブックをインストールすることで手動で Chef Compliance
注記
AWS OpsWorks for Chef Automate サーバーに関連付けられたノードでサポートされている Chef Infra クライアントエージェントソフトウェア (chef-client
) の最小バージョンは 13.x です。最新の安定chef-client
バージョン、または 14.10.9 以上を実行することをお勧めします。
トピック
Chef Automate 2.0 の Compliance
AWS OpsWorks for Chef Automate サーバーが Chef Automate 2.0 を実行している場合は、このセクションの手順を使用して Chef Compliance を設定します。
Chef Automate 2.0 を使用したコンプライアンススキャンジョブの実行
Chef Automate 2.0 には、以前は手動の設定とクックブックの設定が必要だった Chef InSpec コンプライアンススキャン機能が含まれています。Chef Automate 2.0 を実行している AWS OpsWorks for Chef Automate サーバーでスキャンジョブを実行できます。ジョブは、すぐに (1 回) 実行するか、後で実行するようにスケジュールするか、指定した間隔 (毎日または 2 時間ごとなど) で実行するようにスケジュールすることができます。スキャンジョブの結果はコンプライアンスレポートに送信されます。Chef Automate ダッシュボードで、コンプライアンススキャンの結果を表示して対処できます。[Compliance] タブを開いてレポートを表示するには、Chef Automate ダッシュボードの [Scan Jobs] タブで、管理対象ノード行の右側にある [Report] を選択します。
管理対象ノードでスキャンジョブを実行するには、以下のものが必要です。
-
名前空間にインストールされた 1 つ以上の Compliance プロファイル。
-
手動で追加された 1 つの以上のターゲットノード、または自動的に追加された EC2 インスタンス。
では AWS OpsWorks for Chef Automate、スキャンジョブは次のターゲットでサポートされています。
-
手動で追加されたノード
-
aws-ec2
インスタンス -
AWS リージョン
スキャンジョブの実行方法の詳細については、Chef のドキュメントの「Chef Automate Scan Jobs
(オプション、Chef Automate 2.0) Audit クックブックによるコンプライアンスの設定
コンプライアンスはどの AWS OpsWorks for Chef Automate サーバーでも設定できます。 AWS OpsWorks for Chef Automate
サーバーを起動した後、Chef Automate ダッシュボードからプロファイルをインストールしたり、Policyfile.rb
ポリシーファイルで Audit クックブックの属性に目的のプロファイルを追加したりできます。スターターキットには、事前入力済みの Policyfile.rb
ファイルが含まれています。
監査クックブックの属性として Policyfile.rb
プロファイルを編集した後、chef push
コマンドを実行して [Audit cookbook]Policyfile.rb
で指定された他のクックブックを Chef Automate サーバーにアップロードします。Audit クックブックをインストールすると、Chef によって作成されたオープンソースのテストおよび監査フレームワークである Chef InSpec
このセクションの手順は opsworks-audit
クックブックを実装する方法を示しています。Audit クックブックは指定されたプロファイルを Chef Automate サーバーからダウンロードし、DevSec SSH Baseline プロファイルに対してノードを評価して、chef-client
の実行ごとにコンプライアンススキャンの結果をレポートします。
Compliance プロファイルをインストールするには
-
まだ行っていない場合は Chef Automate ウェブベースダッシュボードにサインインします。 AWS OpsWorks for Chef Automate サーバーの作成時にスターターキットをダウンロードした際に受信した認証情報を使用します。
-
Chef Automate ダッシュボードで、[Asset Store] タブを選択します。
-
定義済みのプロファイルを表示するには、[Available] タブを選択します。
-
プロファイルのリストを参照します。オペレーティングシステムおよび少なくとも 1 つの管理対象ノードの設定に一致するプロファイルを選択します。プロファイルの対象となる違反の説明および基盤となるルールコードを含むプロファイルの詳細を表示するには、プロファイル項目の右にある [>] を選択します。複数のプロファイルを選択できます。スターターキットのサンプルを設定する場合は、[DevSec SSH Baseline] を選択します。
-
選択されたプロファイルを Chef Automate サーバーにインストールするには、[Get] を選択します。
-
プロファイルをインストールすると、それらは Chef Automate ダッシュボードの [Profiles] タブに表示されます。
Policyfile.rb
を使用してクックブックをインストールするには
-
スターターキットの
Policyfile.rb
を表示して、Audit クックブックの属性で['profiles']
のssh-baseline
プロファイルが指定されていることを確認します。# Define audit cookbook attributes default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate" default["opsworks-demo"]["audit"]["profiles"] = [ { "name": "DevSec SSH Baseline", "compliance": "admin/ssh-baseline" } ]
-
Policyfile.rb
に定義されているクックブックをダウンロードしてインストールします。chef install
すべてのクックブックはクックブックの
metadata.rb
ファイルでバージョニングされています。クックブックを変更するたびにmetadata.rb
にあるクックブックのバージョンを上げる必要があります。 -
Policyfile.rb
に定義されているポリシーopsworks-demo
をサーバーにプッシュします。chef push opsworks-demo
-
ポリシーのインストールを確認します。以下のコマンドを実行してください。
chef show-policy
結果は以下のようになります。
opsworks-demo-webserver ======================= * opsworks-demo: ec0fe46314
-
まだ行っていない場合は、サーバーにノードを追加して管理できるようにします。最初のノードを AWS OpsWorks for Chef Automate サーバーに接続するには、このスターターキットに含まれている
userdata.sh
スクリプトを使用します。AssociateNode
API を使用して、ノードを AWS OpsWorks サーバーに接続します。「でノードを自動的に追加する AWS OpsWorks for Chef Automate」のステップに従ってノードの関連付けを自動化できます。または「ノードを個別に追加します」のステップに従ってノードを 1 度に 1 つずつ追加できます。
-
ノードの実行リストを更新すると、
chef-client
エージェントが次回の実行時に、指定したレシピを実行します。この処理はデフォルトで 1,800 秒 (30 分) ごとに行われます。その実行後、Chef Automate ダッシュボードの [Compliance] タブからコンプライアンス結果を表示し、アクションを実行できます。
コンプライアンススキャンの実行
ノードの実行リストを設定した後、エージェントが初めて実行されるとすぐに、Chef Automate ダッシュボードにコンプライアンススキャンの結果が表示されます。

Chef Automate ダッシュボードで、[Compliance] タブを選択します。左のナビゲーションペインの [Reporting] を選択します。[Profiles] タブを選択して [Scan Results] を選択した後、スキャンによって非準拠と見なされたノードを選択して、そのノードがどのルールに対して非準拠になったかを調べます。

新しいノードは DevSec SSH Baseline プロファイルのルールすべてを満たさないため、通常はスキャンの非準拠結果が表示されます。DevSec Hardening Framework
(オプション) 非準拠結果の解決
スターターキットにはオープンソースのクックブック ssh-hardening
が含まれています。このクックブックは、DevSec SSH Baseline プロファイルに対して実行したスキャンの非準拠結果を修正するために実行できます。
注記
ssh-hardening
クックブックは DevSec SSH Baseline ルールに準拠するようにノードを変更します。本稼働ノードでこのクックブックを実行する前にクックブックがターゲットにするルール違反を理解するため、Chef Automate の DevSec SSH Baseline プロファイルの詳細を確認してください。本稼働ノードでこれを実行する前に、オープンソースの ssh-hardening
ssh-hardening
クックブックを実行するには
-
テキストエディタで、
ssh-hardening
の実行リストにPolicyfile.rb
クックブックを追加します。実行リストPolicyfile.rb
は以下のようになります。run_list 'chef-client', 'opsworks-webserver', 'audit', 'ssh-hardening'
-
Policyfile.rb
を更新し、 AWS OpsWorks for Chef Automate サーバーにプッシュします。chef update Policyfile.rb chef push opsworks-demo
-
opsworks-demo
ポリシーに関連付けられているノードは実行リストを自動的に更新し、次のchef-client
の実行時にssh-hardening
クックブックを適用します。chef-client
クックブックを使用しているため、ノードが定期的にチェックインします (デフォルトでは 30 分ごと)。次のチェックインでssh-hardening
クックブックが実行され、DevSec SSH Baseline プロファイルのルールを満たすようにノードセキュリティの改善をサポートします。 -
ssh-hardening
クックブックの初回実行が完了したら 30 分待機し再びコンプライアンススキャンを実行します。Chef Automate ダッシュボードで結果を表示します。DevSec SSH Baseline スキャンの初回実行時に発生した非準拠の結果が解決されます。
Chef Automate 1.x の Compliance
AWS OpsWorks for Chef Automate サーバーが Chef Automate 1.x を実行している場合は、このセクションの手順を使用して Chef Compliance を設定します。
(オプション、Chef Automate 1.x) Chef Compliance の設定
Chef Compliance は任意の AWS OpsWorks for Chef Automate サーバーで設定できます。 AWS OpsWorks for Chef Automate
サーバーを起動した後、Chef Automate ダッシュボードのプロファイルから実行するプロファイルを選択します。プロファイルをインストールした後、berks
コマンドを実行して Audit クックブック
AWS OpsWorks for Chef Automate スターターキットには、Chef の Audit クックブックの適切なバージョンをダウンロードしてインストールopsworks-audit
するラッパークックブック が含まれています。opsworks-audit
クックブックは chef-client
エージェントが、この後のトピックで行う Chef Compliance コンソールからインストールする DevSec SSH Baseline プロファイルに対しノード評価を行うように指示します。独自の設定に適したように、いずれかのクックブックを使用してコンプライアンスをセットアップできます。このセクションの手順は opsworks-audit
クックブックを実装する方法を示しています。
Compliance プロファイルをインストールするには
-
まだ行っていない場合は Chef Automate ウェブベースダッシュボードにサインインします。 AWS OpsWorks for Chef Automate サーバーの作成時に Starter Kit をダウンロードしたときに受け取った認証情報を使用します。
-
Chef Automate ダッシュボードで、[Compliance] タブを選択します。
-
左ナビゲーションバーで、[Profile Store] を選択してから [Available] タブを選択して、事前定義されたプロファイルを表示します。
-
プロファイルのリストを参照します。オペレーティングシステムおよび少なくとも 1 つの管理対象ノードの設定に一致するプロファイルを選択します。プロファイルの対象となる違反の説明および基盤となるルールコードを含むプロファイルの詳細を表示するには、プロファイル項目の右にある [>] を選択します。複数のプロファイルを選択できます。
-
選択されたプロファイルを Chef Automate サーバーにインストールするには、[Get] を選択します。
-
ダウンロードが完了したら、次の手順に進んでください。
opsworks-audit
クックブックをインストールしてセットアップする
-
このステップはオプションですが、ノードの実行リストにレシピを追加する場合のステップ 6 で時間の節約になります。 AWS OpsWorks for Chef Automate サーバーの作成時にダウンロードしたスターターキットに含まれている
roles/opsworks-example-role.rb
ファイルを編集します。次の行を追加します。コンプライアンススキャンを実行してから非準拠ノードを解決するためにssh-hardening
クックブックとレシピを追加することはオプションなので、最後の行はコメントアウトされています。run_list( "recipe[chef-client]", "recipe[apache2]", "recipe[opsworks-audit]" # "recipe[ssh-hardening]" )
-
テキストエディタを使用して Berksfile で希望のクックブックを指定します。サンプル Berksfile はスターターキットに含まれています。この例では、Chef Infra クライアント ([
chef-client
) クックブック、apache2
クックブック、opsworks-audit
クックブックをインストールします。Berksfile は以下のようになります。source 'https://supermarket.chef.io cookbook 'chef-client' cookbook 'apache2', '~> 5.0.1' cookbook 'opsworks-audit', path: 'cookbooks/opsworks-audit', '~> 1.0.0'
すべてのクックブックはクックブックの
metadata.rb
ファイルでバージョニングされています。クックブックを変更するたびにmetadata.rb
にあるクックブックのバージョンを上げる必要があります。 -
次のコマンドを実行してローカルまたは使用中のコンピュータにある
cookbooks
フォルダにクックブックをダウンロードしインストールします。berks vendor cookbooks
-
次のコマンドを実行して、 AWS OpsWorks for Chef Automate サーバーにベンダーのクックブックをアップロードします。
knife upload .
-
opsworks-audit
クックブックがインストールされていることを確認するには、次のコマンドを実行してサーバーで現在使用可能なクックブックのリストを表示します。knife cookbook list
-
まだ行っていない場合は、サーバーにノードを追加して管理できるようにします。「でノードを自動的に追加する AWS OpsWorks for Chef Automate」のステップに従ってノードの関連付けを自動化できます。または「ノードを個別に追加します」のステップに従ってノードを 1 度に 1 つずつ追加できます。ノードの実行リストを編集して、ステップ 1 の
opsworks-example-role
で指定したロールを追加します。この例ではRUN_LIST
の属性をuserdata
スクリプトで編集します。これはノードの関連性を自動化するために使用します。RUN_LIST="role[opsworks-example-role]"
ステップ 1 をスキップしロールを設定しなかった場合は、実行リストに各レシピの名前を追加します。変更を保存して ステップ 3: 自動関連付けスクリプトを使用してインスタンスを作成する のステップに従がって、ユーザーデータスクリプトをAmazon EC2 インスタンスに適用します。
RUN_LIST="recipe[chef-client],recipe[apache2],recipe[opworks-audit]"
-
ノードの実行リストを更新すると、
chef-client
エージェントが次回の実行時に、指定したレシピを実行します。この処理はデフォルトで 1,800 秒 (30 分) ごとに行われます。実行後、Chef Automate ダッシュボードでコンプライアンス結果を見ることができます。
コンプライアンススキャンの実行
ノードの実行リストを設定した後初めてエージェントデーモンが実行された後短時間で、Chef Automate ダッシュボードにコンプライアンススキャンの結果が表示されます。

Chef Automate ダッシュボードで、[Compliance] タブを選択します。左のナビゲーションペインの [Reporting] を選択します。[Profiles] タブを選択して [Scan Results] を選択した後、スキャンによって非準拠と見なされたノードを選択して、そのノードがどのルールに対して非準拠になったかを調べます。

新しいノードは DevSec SSH Baseline プロファイルのルールすべてを満たさないため、通常はスキャンの非準拠結果が表示されます。DevSec Hardening Framework
(オプション) 非準拠結果の解決
スターターキットにはオープンソースのクックブック ssh-hardening
が含まれています。このクックブックは、DevSec SSH Baseline プロファイルに対して実行したスキャンの非準拠結果を修正するために実行できます。
注記
ssh-hardening
クックブックは DevSec SSH Baseline ルールに準拠するようにノードを変更します。本稼働ノードでこのクックブックを実行する前にクックブックがターゲットにするルール違反を理解するため、Chef Automate の DevSec SSH Baseline プロファイルの詳細を確認してください。本稼働ノードでこれを実行する前に、オープンソースの ssh-hardening
ssh-hardening
クックブックを実行するには
-
テキストエディタで、
ssh-hardening
クックブックを Berksfile に追加します。Berksfile は以下のようになります。source 'https://supermarket.chef.io' cookbook 'chef-client' cookbook 'apache2', '~> 5.0.1' cookbook 'opsworks-audit', path: 'cookbooks/opsworks-audit', '~> 1.0.0' # optional cookbook 'ssh-hardening'
-
次のコマンドを実行して
ssh-hardening
クックブックをローカルのクックブックフォルダにダウンロードし、 AWS OpsWorks for Chef Automate サーバーにアップロードします。berks vendor cookbooks knife upload .
-
ノードの実行リストに
ssh-hardening
レシピを追加します。この操作はステップ 1 とステップ 6 (opsworks-audit クックブックをインストールしてセットアップする) で説明されています。opsworks-example-role.rb
ファイルを更新するには、次のコマンドを実行してサーバーに変更をアップロードします。knife upload .
実行リストを直接更新するには、次のコマンドを実行して変更をアップロードします。通常、ノード名はインスタンス ID になります。
knife node run_list add
<node name>
'recipe[ssh-hardening]' -
chef-client
クックブックを使用しているため、ノードが定期的にチェックインします (デフォルトでは 30 分ごと)。次のチェックインでssh-hardening
クックブックが実行され、DevSec SSH Baseline プロファイルのルールを満たすようにノードセキュリティの改善をサポートします。 -
ssh-hardening
クックブックの初回実行が完了したら 30 分待機し再びコンプライアンススキャンを実行します。Chef Automate ダッシュボードで結果を表示します。DevSec SSH Baseline スキャンの初回実行時に発生した非準拠の結果が解決されます。
Compliance の更新
AWS OpsWorks for Chef Automate サーバーでは、スケジュールされたシステムメンテナンスによってコンプライアンス機能が自動的に更新されます。Chef Automate、Chef Infra Server、Chef InSpec の最新リリースが AWS OpsWorks for Chef Automate サーバーで使用可能になると、サーバーで実行されている Audit クックブックおよび Chef InSpec gem のサポートされているバージョンを確認および更新する必要があります。 AWS OpsWorks for Chef Automate サーバーにインストール済みのプロファイルは、メンテナンスの一環として更新されません。
コミュニティとカスタム Compliance プロファイル
Chef には現在 100 種類を超えるコンプライアンススキャンプロファイルが含まれています。コミュニティとカスタムプロファイルをリストに追加して、含まれているプロファイルと同様にそれらのプロファイルに基づいてコンプライアンススキャンをダウンロードして実行できます。コミュニティベースの Compliance プロファイルは Chef Supermarket