Amazon Redshift クラスターまたは Amazon Redshift Serverless で監査ログ記録を有効にしたいです。
簡単な説明
Amazon Redshift は、システムログをシステムテーブルとビューに保存し、最大 7 日間保持します。これらのログは、データベースのセキュリティを監視し、データベースの問題をトラブルシューティングする参考になります。
ログを長期間保存するには、Amazon Redshift で監査ログ機能を有効にします。ログは、Amazon Simple Storage Service (Amazon S3) バケットまたは Amazon CloudWatch に保存できます。CloudWatch には、監査ログデータを視覚化する機能があります。
Amazon Redshift は次のタイプのログに情報を記録します。
- 接続ログ - 認証試行、接続、切断を記録します。
- ユーザーログ - データベースユーザー定義の変更に関する情報を記録します。
- ユーザーアクティビティログ - 各クエリを、データベースで実行される前に記録します。
注: ユーザーアクティビティログでは、パラメータグループを設定することで、ログを正しく保存する必要があります。
解決策
Amazon Redshift でプロビジョニングされたクラスターで監査ログを有効にする
次の手順を実行し、コンソールを使用して Amazon Redshift でプロビジョニングされたクラスターの監査ログ記録を有効にします。
- Amazon Redshift コンソールを開きます。
- ナビゲーションペインで [クラスター] を選択し、更新するクラスターを選択します。
- [プロパティ] タブを選択します。
- [データベース設定] パネルで [編集] を選択し、[監査ログの編集] を選択します。
- [監査ログの編集] で [有効化] を選択し、[S3 バケット] または [CloudWatch] を選択します。
[S3 バケット] を選択した場合は、データベース監査ログの保存用に既存のバケットを選択するか、新しいバケットを作成します。
[CloudWatch] を選択した場合は、ログの種類を 接続ログ、ユーザーログ、ユーザーアクティビティログから選択します。
- [変更を保存] を選択します。
AWS コマンドラインインターフェイス (AWS CLI) を使用して監査ログを有効にする方法については、enable-logging を参照してください。
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
次の例は、enable-logging コマンドを実行し、監査ログの送信先に S3 バケットを使用して監査ログを有効にする方法を示しています。
aws redshift enable-logging --cluster-identifier redshift-cluster-1 --log-destination-type s3 --bucket-name mybucket --s3-key-prefix mybucket/test --region us-east-1
出力は次のようになります。
{ “LoggingEnabled”: true, “BucketName”: “mybucket”, “S3KeyPrefix”: “mybucket/test/“, “LastSuccessfulDeliveryTime”: “2022-09-14T12:04:42.558000+00:00"}
注: S3 バケットまたは CloudWatch にログが表示されるまでに、遅延が発生する場合があります。クラスターのプロパティで前回成功した配信日時を確認することで、ログ配信が最後に実行された日時を確認できます。
ユーザーアクティビティログのパラメータグループ
ユーザーアクティビティログを記録するには、Amazon Redshift クラスターにアタッチされているクラスターパラメータグループで enable_user_activity_logging パラメータを true に設定する必要があります。
注: Amazon Redshift クラスターは、初回の作成時にデフォルトのパラメータグループに自動的に関連付けられます。この構成では、enable_user_activity_logging パラメータは false に設定されています。デフォルトのパラメータグループ自体を直接変更することはできません。
enable_user_activity_logging パラメータを有効にするには、次の手順を実行します。
- 新しいパラメータグループを作成します。
- パラメータグループを変更し、enable_user_activity_logging パラメータを true に設定します。
新しいパラメータグループをクラスターに関連付けるには、次の手順を実行します。
- ナビゲーションペインで [クラスター] を選択します。次に、変更するクラスターを選択します。
- [プロパティ] を選択します。
- [パラメータグループ] セクションまでスクロールし、[編集] を選択します。
- リストから新しいパラメータグループを選択します。
- [変更を保存] を選択します。
クラスターに既に関連付けられているパラメータグループのパラメータ値を変更した後には、クラスターの再起動が必要になる場合があります。更新したパラメータ値を有効にするには、別のパラメータグループをクラスターに関連付けなければならない場合もあります。メンテナンス中にクラスターが再起動された場合、変更は適用されません。
監査ログを有効にしたが、パラメータグループの enable_user_activity_logging パラメータを有効にしなかった場合は、次のことが起こります。
- データベース監査ログには、接続ログとユーザーログの情報のみが格納されます
- ユーザーアクティビティログは格納されません
詳細については、「Amazon Redshift のパラメータグループ」を参照してください。
Amazon Redshift Serverless で監査ログ記録を有効にする
Amazon Redshift Serverless で監査ログを有効にするには、次の手順を実行します。
- Amazon Redshift コンソールを開きます。
- ナビゲーションペインで [Redshift Serverless] を選択し、[Serverless ダッシュボード] を選択します。
- 監査ログを有効にする名前空間を選択します。
- [セキュリティと暗号化] タブを選択します。
- [セキュリティと暗号化] で [編集] を選択します。
- [エクスポートするログ] で、CloudWatch に格納するログを選択します。ログタイプには、 ユーザーログ、接続ログ、ユーザーアクティビティログを選択できます。
- [変更を保存] を選択します。
注: Amazon Redshift Serverless は、S3 バケットにログをエクスポートできません。
監査ログを監視する方法の詳細については、「CloudWatch のログイベント」を参照してください。
関連情報
データベース監査ログ
Amazon Redshift Serverless の監査ログを記録する