削除が予定されている AWS Secrets Manager シークレットへのアクセスを監視する - AWS Secrets Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

削除が予定されている AWS Secrets Manager シークレットへのアクセスを監視する

AWS CloudTrail、Amazon CloudWatch Logs、Amazon Simple Notification Service (Amazon SNS) の組み合わせを使用すると、削除が保留されているシークレットにアクセスが試みられたときに、通知するアラームを作成できます。アラームから通知を受け取ると、削除が本当に必要かどうかを時間をかけて判断するために、シークレットの削除をキャンセルしなければならない場合があります。調査の結果、シークレットが実際にまだ必要であるため、シークレットが保存されたままになる可能性があります。または、使用する新しいシークレットの詳細を使用して、ユーザーを更新する必要がある場合があります。

次の手順は、特定のエラーメッセージを生成する GetSecretValue オペレーションのリクエストが CloudTrail ログファイルに書き込まれた場合に、通知を受け取る方法を説明します。他の API オペレーションは、アラームをトリガーせずにシークレットで実行できます。この CloudWatch アラームは、古い認証情報を使用しているユーザーまたはアプリケーションを示す可能性のある使用を検出します。

これらの手順を開始する前に、AWS リージョン と、AWS Secrets Manager API リクエストを監視するアカウントで、CloudTrail をオンにする必要があります。手順については、「AWS CloudTrail ユーザーガイド」の「Creating a trail for the first time」を参照してください。

ステップ 1: CloudTrail ログファイルの CloudWatch ログへの配信を設定します

CloudTrail ログファイルの CloudWatch Logs への配信を設定します。これにより、CloudWatch Logs は削除が保留されているシークレットを取得する、Secrets Manager API リクエストを監視できます。

CloudTrail ログファイルの CloudWatch Logs への配信を設定するには
  1. CloudTrail コンソール (https://console.aws.amazon.com/cloudtrail/) を開きます。

  2. 上部のナビゲーションバーで、AWS リージョン を選択してシークレットを監視します。

  3. 左のナビゲーションペインで [Trails](証跡) を選択し、CloudWatch 向けに設定する証跡の名前を選択します。

  4. [Trails Configuration](証跡の設定) ページで、[CloudWatch Logs] のセクションまでスクロールダウンし、編集アイコン ( Remote control icon with power, volume, and channel buttons. ) を選択します。

  5. [New or existing log group] (新規または既存のロググループ)にロググループの名前 (CloudTrail/MyCloudWatchLogGroup) を入力します。

  6. [IAM role] (IAM ロール) には、CloudTrail_CloudWatchLogs_Role というデフォルトのロールを使用できます。このロールには、CloudTrail イベントをロググループに配信するために必要なアクセス許可を持つ、デフォルトロールポリシーがあります。

  7. [Continue] (続行) を選択して設定を保存します。

  8. [AWS CloudTrail will deliver CloudTrail events associated with API activity in your account to your CloudWatch Logs log group AWS CloudTrail] ( がアカウントでの API アクティビティに関連する CloudTrail イベントを CloudWatch Logs のロググループに配信する) ページで、[Allow] (許可) を選択します。

ステップ 2: CloudWatch アラームを作成する

Secrets Manager の GetSecretValue API オペレーションリクエストが、削除保留中のシークレットにアクセスした場合に通知を受け取るには、CloudWatch アラームを作成し、通知を設定する必要があります。

CloudWatch アラームを作成するには
  1. 次の場所から CloudWatch コンソールにサインインします (https://console.aws.amazon.com/cloudwatch/)。

  2. 上部のナビゲーションバーで、シークレットを監視する AWS リージョンを選択します。

  3. 左のナビゲーションペインで [Logs] (ログ) を選択します。

  4. [Log Groups] (ロググループ) のリストで、以前の手順で作成したロググループ (CloudTrail/MyCloudWatchLogGroupなど) の横にあるチェックボックスを選択します。その後、[Create Metric Filter] (メトリクスフィルタの作成) を選択します。

  5. [Filter Pattern] (フィルタパターン) に、以下を入力するか貼り付けます。

    { $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }

    [Assign Metric] (メトリクスの割り当て) を選択します。

  6. [Create Metric Filter and Assign a Metric] (メトリクスフィルタの作成とメトリクスの割り当て) ページで、次の操作を実行します。

    1. [Metric Namespace] (メトリクス名前空間) に「CloudTrailLogMetrics」と入力します。

    2. [Metric Name] (メトリクス名) に「AttemptsToAccessDeletedSecrets」と入力します。

    3. [Show advanced metric settings] (メトリクスの詳細設定の表示) を選択した後、必要に応じて [Metric Value] (メトリクス値) に「1」と入力します。

    4. [Create Filter] (フィルタの作成) を選択します。

  7. フィルタボックスで、[Create Alarm] (アラームの作成) を選択します。

  8. [Create Alarm] (アラームの作成) ウィンドウで、以下の操作を行います。

    1. [Name] (名前) に、「AttemptsToAccessDeletedSecretsAlarm」と入力します。

    2. [Whenever:] (次の時:) の [is:] (が:) で [>=] を選択し、「1」と入力します。

    3. [Send notification to:] (通知の送信:) の横で、次のいずれかを実行します。

      • 新しい Amazon SNS トピックを作成し使用するには、[New list] (新しいリスト) を選択し、新しいトピック名を入力します。[Email list:] (E メールリスト:) に、E メールアドレスを少なくとも 1 つ入力します。カンマで区切って、複数の E メールアドレスを入力できます。

      • 既存の Amazon SNS トピックを使用するには、使用するトピックの名前を選択します。リストが存在しない場合は、[Select list] (リストの選択) を選択します。

    4. [Create Alarm] (アラームの作成) を選択します。

ステップ 3: CloudWatch アラームをテストする

アラームをテストするには、シークレットを作成し、それを削除用にスケジュールします。次に、シークレット値の取得を試みます。 アラームで設定したアドレスに間もなく E メールが届きます。これは、削除予定のシークレットの使用について警告します。