BigFix クラウド・リソースへのエージェントのインストール

パッチ 2 以降では、対応する BigFix クラウド・プラグインを通じてクラウド・プロバイダー・サービスを使用して、検出されたクラウド・リソース (AWS および Azure) に BigFix エージェントをインストールできます。

BigFix 検出されたクラウド・リソースにエージェントをデプロイできるようするために、プラットフォームにより、BigFix Enterprise Suite (BES) サポートで 2 つの新しいタスク (クラウド・プロバイダーごとに固有) が提供されます。

タスクは、BigFix コンソールと WebUI の両方から使用できます。クラウド・プロバイダーに応じて、次のいずれかのタスクを使用します。

  • 4774 Install BigFix Client through Amazon Web Services
  • 4775 Install BigFix Client through Microsoft Azure

タスクの実行内容

タスクにより、ターゲット・クラウド・リソースでローカルに完了する次のアクションが実行されます。
  • software.bigfix.com からインストール・スクリプトを取得します。
  • software.bigfix.com から、プラグイン・ポータルのバージョンに基づいてクライアント・インストーラーを取得します。
  • 未認証リレーから、タスクへの入力のために提供されるデプロイメント・マストヘッドを取得します。
  • クライアントをインストールし、未認証リレーに登録します。
  • クライアントの登録が完了するまで待機します。

要件

この新しいインストール機能を使用するには、検出されたクラウド・リソースが、クラウド・プロバイダー固有の多数の構成要件を満たしている必要があります。これらの要件のサブセットは、タスクに含まれる関連性によって自動的にチェックされます。クラウド・リソースが正しく構成されていることを確認する必要があります。

検出されたクラウド・リソースにエージェントをインストールする場合の主な要件は次のとおりです。
  • プロバイダー固有のクラウド・エージェントを、クラウド・リソースにインストールする必要があります。詳細については、「AWS」および「Azure」を参照してください。
  • クラウド・リソースはアクティブで、実行中である必要があります。
  • 未認証リレーの名前 (タスクの実行中に入力として指定)。詳しくは、入力としてのリレー名を参照してください。
  • クラウド・リソースで実行されているオペレーティング・システムを、BigFix クライアントがサポートしている必要があります。詳しくは、サポートされるオペレーティング・システムを参照してください。
  • プラグイン・ポータルは、最低でもパッチ 2 レベルである必要があります。

重要な考慮事項

この機能は、次のリレーと設定をサポートしていません
  • 認証リレー
  • インストール時に設定されるカスタム・クライアント設定

AWS の要件

VM の要件

  • アクティブで実行中の AWS Systems Manager (SSM) エージェントが VM に存在する必要があります。
  • IAM インスタンス・プロファイルが存在し、IAM 役割を介してそのプロファイルに AmazonSSMManagedInstanceCore IAM ポリシーを関連付ける必要があります。IAM インスタンス・プロファイルは VM にアタッチする必要があります。この要件により、AWS Systems Manager は、VM でコマンドを安全に実行できます。

IAM ID の要件

AWS Cloud Plugin で設定する場合、IAM ID (ユーザーとロール) が常に満たす必要がある基本的な要件は次のとおりです。

  • MFA を無効にする必要があります
  • プログラムによるアクセス・タイプが必要です

AWS Cloud Plugin のクレデンシャルとして使用するアクセス・キー ID と シークレット・アクセス・キーのペアに関連付けられた IAM ユーザーで BigFix エージェントをインストールする場合、必要な権限は以下のとおりです。

  • 少なくとも次の ec2 権限が必要です。ec2:Describe* アクションを * リソースで許可する必要があります。
  • 少なくとも次の ssm 権限が必要です。ssm:DescribeInstanceInformation、ssm:SendCommand、および ssm:GetCommandInvocation アクションを * リソースで許可する必要があります。

AWS Cloud Plugin で構成された IAM ユーザーが引き受けることができる IAM ロールで BigFix エージェントをインストールする場合、必要な権限は次のとおりです。

ユーザーの場合:

  • 対象のロールで sts:AssumeRole を実行できる必要があります。

ロールの場合:

  • 少なくとも次の ec2 権限が必要です。ec2:Describe* アクションを * リソースで許可する必要があります。
  • 少なくとも次の ssm 権限が必要です。ssm:DescribeInstanceInformation、ssm:SendCommand、および ssm:GetCommandInvocation アクションを * リソースで許可する必要があります。
  • ロールを引き受ける IAM ユーザーは、ロールの信頼された ID である必要があります。
注: AWS ロールが挿入されると、AWS プラグインは、取得元の資格情報ではなく、検出時に AWS ロールを使用します。クラウド環境で検出するすべての AWS デバイスがこれらの役割に含まれるようにする必要があります。そうしない場合、一部のマシンが検出されない可能性があります。

前提条件の完全なリストについては、「Systems Manager の前提条件」を参照してください。2017 年 9 月以降の日付の Amazon Linux ベース API には、デフォルトで Systems Manager が含まれます。他の Amazon Machine Image (AMI) またはカスタム AMI では、Systems Manager (SSM) エージェントがまだ存在しない場合は、手動でインストールする必要があります。オペレーティング・システム・サポートの詳細については、「Systems Manager でサポートされるオペレーティング・システム」を参照してください。

Azure の要件

  • VM エージェントが VM に存在する必要があります。
    Azure には、プラットフォームに基づいて、コマンドを実行する 2 つのエージェントが用意されています。
  • オペレーター (ディスカバリー資格情報) には、少なくともアクション権限が必要です。

エージェントが存在しない場合、OS の要件が満たされているのであれば、前の参照で示したようにエージェントをインストールできます。Azure VM でコマンドを実行するには、オペレーターが少なくともアクション権限を持っている必要があります。Microsoft.Compute/virtualMachines/runCommand/action.コントリビューター役割またはそれ以上の組み込みの役割には、この権限はデフォルトで含まれます。ただし、特定のカスタム役割を定義することもできます。

入力としてのリレー名

タスクにより、未認証リレーの名前を入力するように求められます。次のいずれかの形式で入力します。
  • リレーのホスト名。例えば、「myhostname」と入力します。
  • リレーの完全修飾ドメイン名 (FQDN)。例えば、「myhostname.mydomain.com」と入力します。
  • リレーの IP アドレス。例えば、「10.10.10.10」と入力します。

サポートされるオペレーティング・システム

この機能を使用するには、次のプロバイダー固有のエージェントのいずれかがインストールされ、アクティブになっている必要があります。
  • AWS の SSM エージェント
  • Azure の VM エージェント

したがって、プロバイダー・エージェントでサポートされている一部のオペレーティング・システムが、BigFix でサポートされない場合があります。このオペレーティング・システムのサブセットは、将来変更される可能性があります。

AWS VM でサポートされる OS

AWS SSM エージェントが現在サポートされているオペレーティング・システムのタイプについては、「AWS SSM でサポートされる OS」を参照してください。

現在サポートされている BigFix エージェントのオペレーティング・システムについて詳しくは、「Detailed system requirements」を参照してください。

Azure VM でサポートされる OS

Azure VM エージェントが現在サポートされているオペレーティング・システムのタイプについては、次の文書を参照してください。

現在サポートされている BigFix エージェントのオペレーティング・システムについて詳しくは、「Detailed system requirements」を参照してください。

トラブルシューティング

エージェントのインストール失敗をトラブルシューティングする方法は複数あります。
  • 以下に示すカスタム終了コードのリストを確認できます。
  • ActionResultsStore.db という名前の SQLite データベースであるトラブルシューティング機能を使用できます。このデータベースは、クラウド・プラグインごとに使用できます。
  • アクション・ログを確認できます。ログは手動で確認できます。デフォルトの場所については後述します。

インストール・スクリプトの終了コード

1. ネイティブ・エージェントのインストール終了コード
終了コード 原因 解決方法
209 クライアント・ログ・ファイルが見つかりません。この原因として考えられるのは、インストール対象のクライアントを指定の時間内にインストールできなかったことです。 クライアントが登録されるまで数分待機してください。問題が解決しない場合、クライアントを手動でアンインストールし、再度インストールしてください。
210 クライアントの登録が失敗しました。ターゲットがリレーに接続できないため、またはマストヘッドが破損しているため、これが発生した可能性があります。 ターゲット・インスタンスがリレーの FQDN、IP、またはホスト名を解決するかどうか、およびリレーのマストヘッドで指定されたホスト名を解決するかどうかを確認してください。
211 BESClient サービスが見つかりません。 /tmp/BigFix または %TEMP%/BigFix で、ターゲットのクライアント・インストール・ログを確認してください。クライアントをアンインストールし、再度インストールしてください。
212 クライアントは既にインストールされています。ターゲットにクライアントのインストールが存在します。
213 入力パラメーターが欠落しています。これは、手動エラーが原因である可能性があります。 プロンプトが表示されたら入力パラメーターの値を入力し、再試行してください。
215 チェックサムによって誤った値が返されました。ダウンロードしたインストール・スクリプトが破損しています。 ターゲットにネットワーク接続があるかどうか、および BES サポート・サイトに到達できるかどうかを確認してください。
216 Linux ターゲットで curl および wget ユーティリティーが見つかりません。 Linux ターゲットに wget または curl ユーティリティーをインストールしてください。
217 取得した OS データで、スクリプトを実行できません。この原因として考えられるのは、ターゲットにインストールされている OS がサポートされていないこと、またはターゲットから返される OS に関する情報が不十分であることです。 クライアントを手動でインストールするか、CDT を使用してインストールしてください。
218 十分な OS データが取得されていません。この原因として考えられるのは、ターゲットにインストールされている OS がサポートされていないこと、またはターゲットから返される OS に関する情報が不十分であることです。 クライアントを手動でインストールするか、CDT を使用してインストールしてください。
219 Linux ターゲットで shasum および sha256 を使用できません。 Linux ターゲットに shasum または sha256 ユーティリティーをインストールしてください。
220 インストーラー・ファイルが見つかりません。 ターゲットが software.bigfix.com に到達できるかどうかを確認してください。
221 マストヘッド・ファイルが見つかりません。 ターゲットがリレーに到達できるかどうかを確認してください。リレーが認証を行う場合は、クライアントを手動でインストールするか、CDT を使用してインストールしてください。
2. その他の一般的なインストール終了コード
終了コード 原因 解決方法
6 Linux ターゲットで、curl エラー「Could not resolve host」が発生しています。 ターゲットが software.bigfix.com、リレー、および BES サポート・サイトに到達できるかどうかを確認してください。
22 Linux ターゲットで、curl エラー「Request has encontered an error greater than 400」が発生しています。 ターゲットが software.bigfix.com、リレー、および BES サポート・サイトに到達できるかどうかを確認してください。

ActionResultsStore データベース

ActionResultsStore データベースは、各プラグイン・フォルダー内に保存されます。このデータベースには、失敗状態またはエラー状態のアクションの結果が格納されます。

このデータベースは、次の列がある ACTION_RESULTS という名前のテーブルで構成されます。
  • ActionID
  • DeviceID
  • InstanceID
  • Results
  • Date
1 次キーは (ActionID, DeviceID) になります。
データベースの Results 列には JSON 文字列が格納されます。Results の下の各 JSON には、次のキーがあります。
  • status: アクションの状況を表します。
  • exitCode: 使用可能な終了コードがある場合。
  • output: プロバイダーへの要求の出力。
テーブルの例を以下に示します。
{
    "status":"Error",
    "exitCode":1,
    "output":{
       "CloudWatchOutputConfig":{
          "CloudWatchLogGroupName":"",
          "CloudWatchOutputEnabled":false
       },
       "CommandId":"461eee16-e70f-4cf9-b64c- 
  e2902e355f49",
       "Comment":"BES Plugin Shell Cmd",
       "DocumentName":"AWS-RunShellScript",
       "DocumentVersion":"",
       "ExecutionElapsedTime":"PT0.011S",
       "ExecutionEndDateTime":"2020-11 
  -20T08:08:40.693Z",
       "ExecutionStartDateTime":"2020-11-20T08:08:40.693Z",
       "InstanceId":"i- 
   04f8e15e41aaf1544",
       "PluginName":"aws:runShellScript",
       "ResponseCode":1,
       "StandardErrorContent":"mkdir: missing operand\nTry 'mkdir --help' for more 
       information.\nfailed to run commands: exit status 1",
       "StandardErrorUrl":"",
       "StandardOutputContent":"",
       "StandardOutputUrl":"",
       "Status":"Failed",
       "StatusDetails":"Failed"
    }
 }
データベースには、BigFix SQLite インスペクターを使用してリモートからアクセスできます。この例として、Fixlet デバッガーを使用し、照会チャネル機能と BES ポータル・エンドポイントの ID を設定し、次の例のような照会を評価できます。
Q: rows of statement <sql statement> of sqlite database of file "ActionResultsStore.db" 
of folder <plugin folder>

1 日 1 回、ActionResultsStore データベースは自動的にクリーンアップされます。どのクリーニングでも、指定した日数より古いエントリーがすべて削除されます。この日数は、各プラグインで使用できる <plugin_name>_ActionResultsStore_CleanupDays という名前の設定によって構成できます。この設定の値は、0 (ゼロ) より大きくする必要があり、日数で指定します。

インストーラー、マストヘッド、およびログ・ファイルの場所

インストーラー、マストヘッド、およびインストール・タスクの結果の一部であるログ・ファイルは、「BigFix」という名前のフォルダーに格納されます。このフォルダーは、各ターゲット・インスタンス内の次のディレクトリーで見つけることができます。

Windows の場合
%LOCALAPPDATA%\BigFix
Linux の場合
/tmp/BigFix