AWS CloudTrail

注意: この機能は、Cloud Vulnerability Management ライセンスでは使用できません。

モニタリングプロセスの一環として、Tenable One Cloud Exposure は、接続したアカウントのアクティビティを記録する CloudTrail からデータを読み取る必要があります。アカウントの接続プロセス中に、使用する証跡を選択し、IAM ロールを経由して、証跡が配置されている S3 バケットへのアクセス権を Tenable に付与する必要があります。アカウントおよび組織の接続ステップのガイドラインに従ってください。

接続中に、Tenable は以下の有効な証跡を特定し、表示します。

  • マルチリージョン。マルチリージョンの証跡が必要な理由の詳細については、AWS の FAQ を参照してください。
  • 管理による読み取りおよび書き込みイベントをログに記録するよう設定。
  • ログの有効化。

CloudTrail trail details, with Logging, Multi-Region, and Management Events highlighted

通常、接続された各アカウントには 1 つの CloudTrail が関連付けられますが、アカウントが 2 つ以上の証跡を持つ場合もあります。

CloudTrail ファイルを保存している S3 バケットが、接続しているアカウントと同じアカウントにない場合は、そのアカウントを個別に接続してから、別のアカウント用の CloudTrail として選択する必要があります。別の AWS アカウントを「ログアーカイブアカウント」として使用して、他のアカウントのアクティビティをログに記録する場合、Tenable では、次のベストプラクティスに従うことを推奨しています。

  • モニタリングと CloudTrail 両方のアクセス許可を持つログアーカイブアカウントを接続して、すべての AWS アカウントを完全に可視化します。ただし、何らかの理由でセキュリティモニタリングのためにそのようなアカウントを クラウドサイバーエクスポージャー でスキャンしたくない場合は、 CloudTrail のアクセス許可のみで接続できます。

CloudTrail アクセスを付与するメリット

アカウントの接続時には、CloudTrail を含む S3 バケットへのアクセスを Tenable に常に付与することをおすすめします。これにより、以下を含むいくつかの重要なメリットが得られます。

  • 脅威検出
    • クラウド環境内でアイデンティティによって実行されたアクティビティを可視化 (クラウドイベント)。
    • 動作ベースラインに対して異常をチェックする継続的なリスク分析 (異常検出)。
  • アクティビティに基づくアクセス許可の効果的な使用の可視化 (使用済みアクセス許可)。
  • 使用状況に基づく詳細な最小権限の推奨事項。詳細については、データイベントに基づく詳細な推奨事項の有効化を参照してください。

データイベントに基づく詳細な推奨事項の有効化

クラウドサイバーエクスポージャー 内でアクションおよびリソースの詳細な推奨事項を有効にするには、S3 バケットやオブジェクト、および Lambda 関数に対して CloudTrail データの読み取り/書き込みイベントログを有効化します。その後、クラウドサイバーエクスポージャー で関連する証跡を選択します。
これにより、特定の AWS サービスへのアクセスに関する一般的な情報を表示するだけでなく、以下に関する非常に貴重な情報も分析できます。

  • 特定のアイデンティティがサービスで特定のアクションを使用した時期
  • アイデンティティがサービス内で使用した正確なリソース

これにより、クラウドサイバーエクスポージャー はこのデータに関連する特定の最小権限の推奨事項を提供できます。たとえば Tenable は、アプリケーションが使用する特定の S3 バケットまでの最小権限について推奨事項を提示できます。

データイベントを有効にしているかどうかに応じて、次のいずれかの方法で CloudTrail と連携するように クラウドサイバーエクスポージャー を設定できます。

  • 管理イベントとデータイベント (S3、Lambda、またはその両方) のいずれも有効にして単一の CloudTrail を使用する場合は、[管理イベント] ドロップダウンからその証跡を選択します。[S3 データイベント] や [Lambda データイベント] フィールドには、ここで選択した CloudTrail 情報が自動的に入力されます。
  • 管理イベントとデータイベント (S3、Lambda、またはその両方) に別々の証跡を使用する場合は、[管理イベント] ドロップダウンから有効にした管理イベントのある CloudTrail を選択し、それぞれのフィールドでデータイベント証跡を選択します。

CloudTrail のデプロイメント

次の図は、複数のアカウントを持つ環境に CloudTrail をデプロイする方法を示し、複数のアカウント専用の CloudTrail (組織の証跡) を維持する環境と、アカウントごとに個別の CloudTrail がある環境の違いに焦点を当てています。

複数アカウント専用の組織の証跡

このシナリオでは、個別の専用 AWS アカウントが、組織の証跡 (他のアカウントのアクティビティを記録する) を含むログアーカイブアカウントとして使用されます。この専用アカウントは、モニタリングアクセス許可を用いて クラウドサイバーエクスポージャー に個別に接続する必要があります。その後、その組織の証跡を、Tenable に接続する他のアカウントの共有 CloudTrail として使用できます。組織全体を接続する場合、組織の接続を完了してから関連するアカウントを編集し、IAM ロール経由で Tenable に CloudTrail のアクセス許可を付与します。

Diagram: monitored accounts and a multi-account CloudTrail, whose logs Tenable reads through one account's IAM role

アカウントごとの単一 CloudTrail バケット

このシナリオでは、接続された各アカウントは、独立した CloudTrail (どのアカウントも同じ名前が付けられます) に接続されます。

Diagram: each monitored account has its own CloudTrail, and Tenable reads each trail through the account's IAM role

異なるアカウントの KMS キー

CloudTrail の KMS キーが、追加するアカウントとは別の AWS アカウントにある場合は、キーへのアクセス許可を クラウドサイバーエクスポージャー に付与する必要があります。

異なるアカウントにある KMS キーへのアクセスを許可する方法

  1. CloudTrail KMS キーがある AWS アカウントに移動します。
  2. [KMS] > [カスタマーマネージドキー] の順に移動し、対象の KMS キーを開きます。
  3. キーポリシーを編集し、以下のステートメントを [ステートメント] セクションに追加します。

    コピー

    JSON

    {
        "Sid": "Allow an external account to use this KMS key",
        "Effect": "Allow",
        "Principal": {
            "AWS": "{ErmeticRoleARN}"
        },
        "Action": "kms:Decrypt",
        "Resource": "*"
    }

    ここで ErmeticRoleARN は、このウィザードで先ほど作成したロールのロール ARN です。

  4. [変更を保存] をクリックします。