はじめに
SIEM on Amazon OpenSearch Service (SIEM on AOS) を AWS CloudShell
でアップデートする手順を共有します。
- AWS CloudShell 上で AWS CDK によるアップデートを実行
-
SIEM on AOSを更新することで、導入後のエンハンス や AWS Lambda の Pythonランタイムの更新などに対応できる
-
概要
SIEM on AOS の AWS CDK によるアップデートについて
- 手順:高度なデプロイ - AWS CDK によるアップデート を確認
- 今回は、AWS CloudShell で実行するため、
Amazon Linux 2023 の場合
の手順を参照 - 事前準備:インストール時の
cdk.json
を用意する (VPC/サブネット等の構成定義)
- 今回は、AWS CloudShell で実行するため、
実行の流れ
1. AWS CDK 実行環境の準備 (AWS CloudShell で実行)
2. 環境変数の設定
3. AWS Lambda デプロイパッケージの作成
4. AWS Cloud Development Kit (AWS CDK) の環境セットアップ
5. cdk.json の用意
6. cdk deploy実行
注意事項
- アップデート手順には、バックアップに関する注意事項 が記載されている
- 手動でポリシーを変更している場合は、実行前にバックアップしておこう
注) Global tenant の 設定やダッシュボード等は自動で上書きされるのでご注意ください。アップデート前に使用していた設定ファイルやダッシュボード等は S3 バケットの aes-siem-[AWS_Account]-snapshot/saved_objects/ にバックアップされるので、元の設定にする場合は手動でリストアしてください。
注) S3 バケットポリシー、KMS の キーポリシーは、IAM ポリシー等は、CDK/CloudFormation で自動生成されています。手動で変更は非推奨ですが、変更している場合は上書きされるので、それぞれをバックアップをしてからアップデート後に差分を更新して下さい。
AWS CloudShell によるアップデート手順(例)
1. AWS CDK 実行環境の準備
- Amazon Linux 2023 の 手順 を実行
export GIT_ROOT=$HOME cd ${GIT_ROOT} sudo dnf install -y python3.11 python3.11-devel python3.11-pip git jq tar git clone https://github.com/aws-samples/siem-on-amazon-opensearch-service.git
- 参考)gitリポジトリを取得済みの場合、
git pull
で最新化する
- 参考)gitリポジトリを取得済みの場合、
2. 環境変数の設定
- 環境変数
CDK_DEFAULT_ACCOUNT
に 現在のAWSアカウントIDを設定 - 環境変数
AWS_DEFAULT_REGION
はリージョンに合わせて変更 (設定済みの場合は不要)export CDK_DEFAULT_ACCOUNT=`aws sts get-caller-identity --query 'Account' --output text` export AWS_DEFAULT_REGION=ap-northeast-1
3. AWS Lambda デプロイパッケージの作成
-
手順 のコマンドを実行
cd ${GIT_ROOT}/siem-on-amazon-opensearch-service/deployment/cdk-solution-helper/ deactive 2>/dev/null chmod +x ./step1-build-lambda-pkg.sh && ./step1-build-lambda-pkg.sh
4. AWS Cloud Development Kit (AWS CDK) の環境セットアップ
-
手順 のコマンドを実行
chmod +x ./step2-setup-cdk-env.sh && ./step2-setup-cdk-env.sh source ~/.bashrc
5. cdk.json の用意
-
インストール時に使用した
cdk.json
を${GIT_ROOT}/siem-on-amazon-opensearch-service/source/cdk/cdk.json
に置く-
例)vi エディタで cdk.json を作成する
vi ${GIT_ROOT}/siem-on-amazon-opensearch-service/source/cdk/cdk.json
-
:set paste
でペーストモードにする (貼り付け時のインデントの崩れ防止) -
cdk.json
の内容をコピペして保存する (:wq)
-
-
6. cdk deploy実行
- アップデート実行
cd ${GIT_ROOT}/siem-on-amazon-opensearch-service/ && source .venv/bin/activate cd source/cdk cdk deploy
- cdk deploy を実行すると、更新される差分が表示される
- 内容を確認して[y] を入力 (更新がない場合は終了)
- Do you wish to deploy these changes (y/n)? y
- アップデートは数分程度で完了
トラブルシューティング
ディスクの空き容量が不足すると実行に失敗する
- no space left on device, write などのエラーが発生
- 約800MB 必要。
/home/cloudshell-user
のサイズが974MB のためエラーになりやすい
実行に失敗した場合は、ディスクの空き容量を調べよう (dfコマンドなど)
-
対策案:
- A)
/home/cloudshell-user/.cache/
、/home/cloudshell-user/.npm/
などを削除し、空き容量を増やして再実行する -
B) 新しい CloudShell 環境で再実行する(推奨)
- CloudShell の
アクション
で削除
、新しい環境 (セッション) で再度手順を実行
※CloudShell内のデータ等が削除されるので注意(必要なファイルは退避)
- CloudShell の
- A)