AWS Lambdaで自動化
AWSクラウドでCommanderを実行
概説
Commanderは、多くの問題を解決し、Keeper Securityの環境に関する貴重な情報を提供する強力なツールです。Commanderは、ローカルのデスクトップまたはサーバーで使用するだけでなく、AWSなどのクラウド環境で実行して、スケジュール実行やオンデマンド実行の要望に応えることができます。
この例では、AWS LambdaでCommanderを使用して、ユーザーレポートと使用状況レポートを計画的に実行する方法を説明します。
前提条件
Commander
ダウンロードの詳細は、インストールおよび設定ページをご参照ください。
マスターパスワードログイン方式を使用するKeeperユーザーアカウント (SSOログインとMFAはユーザー操作なしでは利用できません)
AWSのアクセス権、Lambda関数の作成権限、AWS Cloud 9でのレイヤーの作成権限
手順
Cloud 9を使用してLambdaレイヤーを作成
Commanderは、AWS Lambdaで実行する環境に対応したマシンでパッケージ化する必要があります。これを行うには、Cloud 9でCommanderパッケージを作成します。
Cloud 9プラットフォームとしてAmazon Linux 2を選択します。
AWS Cloud 9で、インストール済みのPythonインタープリタのバージョンを確認します。
2023年3月現在、Python 3.8をインストールできます
AWS Cloud 9で、zipファイル形式を使用してレイヤーを作成し、pythonディレクトリを追加します
pipを使用して、次の依存関係をインストールします。
keepercommander
Python 3.8をインストールした場合
現在インストール済みのCommanderパッケージをzip圧縮します
Lambdaレイヤーを公開します
Lambdaの作成
AWS Lambdaで、Lambdaエディタを使用してPython関数を作成します。
lambda_handler
関数は、処理される際にLambdaによって呼び出されます。
Commander Lambda関数の完全な例を以下に例示します。
この関数は以下の複数の要素で構成されています。
lambda_handler関数
この関数は、lambdaが実行されたときに呼び出されます。他のすべての関数は、この関数から呼び出す必要があります。
Commanderパラメータの収集
Commanderは、ユーザーアカウントを認証するために複数のパラメータを使用します。 これらを環境変数として添付し、Lambdaに注入します。 以下の説明をご参照ください。
Commander関数
上記の手順は、LambdaでCommanderを実行するために_必要な_すべての手順です。これらの手順が完了すると、Commander SDKコードを実行できるようになります。
この例では、ユーザーステータスレポートを実行し、結果をメールアドレスに送信します。
Commanderパラメータの設定
Commanderは、複数のパラメータを使用してユーザーアカウントを認証し、アクセスするKeeperリージョンを識別します。 これらのパラメータをLambdaに渡すために、環境変数として設定します。
パラメータの収集
CLIにログインすると、Commanderが必要なパラメータを自動的に作成してくれます。 必要なパラメータを生成する最も簡単な方法は、マシンでCommanderのCLIにログインすることです。
Commanderパラメータを取得するには、生成されたconfig.jsonファイルを開きます。 デフォルトでは、このファイルはマシンのUsers/[your username]/.keeper/
フォルダにあります。 詳細は、設定ファイルのドキュメントをご参照ください。
以下のようなファイルが表示されるはずです。
AWS Lambdaのパラメータ設定
必要なCommanderパラメータを環境変数として設定するには、まず、lambda設定に移動し、「Environment Variables (環境変数)」を選択します。
Commanderの各パラメータをLambdaで使用する環境変数として設定します。
また、Commanderへのログインに使用するKeeperのマスターパスワードも追加する必要があります。
環境変数名 | 値 | 例 |
---|---|---|
KEEPER_USER | Keeperユーザーアカウントのメールアドレス (設定の | user@example.com |
KEEPER_SERVER | Keeperサーバーのドメイン (設定の | keepersecurity.com |
KEEPER_CLONE_CODE | 設定の | 36df3[...]A0dsa4g |
KEEPER_PRIVATE_KEY | 設定の | sxv[...]oz3p=fzw |
KEEPER_DEV_TOKEN | 設定の | xko[...]r2IxdiQ |
KEEPER_PASSWORD | Keeperアカウントのパスワード | ***** |
KEEPER_SENDER | メールの送信元のアドレス | user@example.com |
KEEPER_SENDTO | メールの送信先のアドレス | receiver@example.com |
このコード例では、環境変数を使用して、送信元と送信先のメールアドレスを設定しています。 スクリプトでメールを送信しない場合、これらは必要ありません。
Lambdaの設定
タイムアウトの設定
Lambda設定の全般設定セクションで、タイムアウト値を変更することをお勧めします。一部のCommander関数は実行に時間がかかるため、スクリプトの完了にこの数値よりも長い時間がかかる場合、Lambdaは完了せずに自動的に終了してしまいます。
途中で終了する心配のない数値に設定してください。値を300秒 (5分) に設定すれば、ほとんどのプロセスに十分な時間を上回るはずです。
レイヤーの選択
Lambdaエディタで、上記で作成したレイヤーを選択して、LambdaビルドにCommanderパッケージを追加します。
実行スケジュールの作成
Lambdaを呼び出すEventCloudトリガーを作成し、適切な頻度 (たとえば、1日に1回や30日に1回) で動作するように設定します。
AWSでは、メールやSMSによるトリガーなど、他のいくつかのソースからLambdaを呼び出すように設定することもできます。その他のオプションについては、Lambdaの呼び出しに関するAmazonのドキュメントをご参照ください。
メール送信の設定
この例では、レポート結果をメールで送信します。メールを有効にするには、LambdaがSESのSendEmail/SendRawEmail
サービスにアクセスできるようにする必要があります。
さらに、メール送信を有効にするには、IAM IDを作成する必要があります。
AWSでのメール送信の設定の詳細は、Amazonのドキュメントをご参照ください。
この例では、レポート結果をメールで送信します。メールを有効にするには、LambdaがSESのSendEmail
/SendRawEmail
サービスにアクセスできるようにする必要があります。
次の手順
この例では、2つのCommanderレポート (security-report
とsecurity-audit-report
) の結果を組み合わせたレポートを実行し、JSON添付ファイルとしてメールで送信します。これにより、企業全体のセキュリティ監視データ (社内の各ユーザーの最終ログイン日や総合セキュリティスコアなど) を定期的かつ自動的に取得できます。 ただし、この設定では、その他の一連のCommander関数はLambdaで実行できます。
他のCommander機能、Lambda呼び出しメソッド、およびその他のAWSサービス (プッシュ通知の様々な方法を利用できるSNSなど、たとえば、SMSメッセージ) を試すことで、Keeperプロセスに自動化の恩恵をもたらします。
Commander SDKコードの使用例については、Commander GitHubリポジトリの以下のサンプルスクリプトをご参照ください。
Commanderのさまざまなメソッドの詳細は、コマンドリファレンスセクションをご参照ください。
コマンドリファレンス最終更新