Amazon Web Services ブログ

組織全体で Amazon Connect のフロー操作を監査する方法

コンタクトセンター運営における包括的な監査証跡の取得と一元的な可視性の維持は、セキュリティ、コンプライアンス、および運用のベストプラクティスの観点で重要です。以前のブログ記事「AWS CloudTrail と Amazon Athena による組織内の Amazon Connect API アクティビティの調査」では、お客様が AWS CloudTrailAmazon Athena を活用して、Amazon Connect のコンタクトセンター環境の中で行われる様々な API 呼び出しの可視性と監査可能性を実現する方法について説明しました。これは、組織がコンタクトセンター運営の監視および調査をできるようにするための重要な第一歩でした。

Amazon Connect は、さらに一歩進んだ AWS CloudTrail サポートとして、Amazon Connect コンソールのフロー管理ページのアクティビティに対応しました。これは、ユーザーがフローを追加、更新、または削除するたびに、そのアクティビティの記録が CloudTrail ログに取得されることを意味します。この新機能により、コンタクトセンターチームはさらなる可視性、レポーティング、およびコンプライアンスの利点を得ることができます。

この続編となるブログ記事では、お客様が AWS 環境全体で Amazon Connect のフロー管理のアクティビティを一元的に分析および監査する方法について、より詳しく説明します。AWS CloudTrail と Amazon Athena の機能を組み合わせることで、組織は以下のような重要な質問に答えることができます:

  • この重要なフローを最後に更新したのは誰ですか?
  • このフローが最後に保存または削除されたのはいつですか?
  • 様々な AWS アカウントとリージョンで、どのようなフロー管理のアクティビティが発生していますか?

ソリューションの概要

新しく Amazon Connect のフロー管理が CloudTrail に対応したことにより、組織は複数のアカウントとリージョンを横断し、アクティビティを一元的に監査できます。詳細な記録を取得することで、顧客はフローに対して誰が、いつ、どこから変更を加えたかを追跡できます。CloudTrail ログの有効化は良い第一歩ですが、複数の AWS アカウントとリージョンにわたる環境を管理する場合、記録だけでは不十分です。組織は Amazon Athena を使用して CloudTrail ログをクエリし、AWS Organization 全体にわたるフローマネジメントのアクティビティを分析できます。

前提条件

  1. Amazon Conenct パブリック API の基本的な理解
  2. AWS CloudTrail で 組織の証跡を作成できること

ユースケース

1. フローのライフサイクル管理の監査

シナリオ: コンタクトセンター運用チームは、時間の経過とともに行われる、フローの作成、変更、削除を追跡したいと考えています。

ソリューション: CloudTrail ログにより、CreateContactFlow や DeleteContactFlow などのフローのライフサイクルイベントを追跡、記録します。 Athena を使用して Amazon S3 に保存された CloudTrail ログを参照することで、フローのライフサイクルイベントの包括的なビューを得ることができます。手順は以下の通りです:

    1. Athena コンソールに移動し、クエリエディタを選択します。右側のペインで、クエリエディタを使用してクエリを入力し実行します。
    2. 特定の時間以降に作成されたすべてのフローとその作成者を確認するには、クエリエディタで以下のクエリを実行します:
      (訳注: クエリ最後の ‘2024-06-26 00:00:00’ を監査対象となる期間の開始時間に移動することをお勧めします)

      SELECT json_extract_scalar(responseelements, '$.ContactFlowId') as ContactFlowId, json_extract_scalar(requestparameters, '$.InstanceId') as InstanceId, userIdentity.arn, eventtime
      FROM "default"."cloudtrail_logs"
      WHERE userIdentity.arn IS NOT NULL AND eventName='CreateContactFlow' AND eventTime > '2024-06-26 00:00:00’
    3. クエリ結果には、対応するフローを作成したユーザーの Amazon Resource Names (ARNs) と、その時刻が表示されます。

      コンタクトフローのライフサイクル管理監査のクエリ結果

      図 1: フローのライフサイクル管理監査のクエリ結果

    4. 結果の ARN フィールドから Amazon Connect の一意のユーザー ID(UUID) を取得できるようになりました。UUID は上の画像のように、ARN の最後のセグメントにあります。これらのユーザー ID を使用して、DescribeUser API を呼び出すことでユーザーに関する情報を取得できます。
    5. これを行うため、AWS Management Console に移動し、検索ボックスに CloudShell と入力して CloudShell を選択し、AWS CloudShell を起動します。

      CloudShell サービスへのアクセス

      図 2: CloudShell サービスへのアクセス

    6. CloudShell ターミナル内で DescribeUser API を呼び出すことで、Amazon Connect のユーザー詳細を確認できます。
      aws connect describe-user --user-id <ユーザー ID に置き換え> --instance-id <インスタンス ID に置き換え>

      図 3: describe-user API のクエリ結果

      図 3: describe-user のクエリ結果

2. 重要なフローへの不正な変更の検出

シナリオ: コンタクトセンターのマネージャーが、特定のフローを更新したユーザーを特定したいと考えています
ソリューション: 不正な更新を行ったユーザー、時間、詳細を以下の方法で特定します

    1. Athena コンソールに移動し、クエリエディタを選択します。右側のペインで、クエリエディタを使用してクエリを入力し実行します。
    2. 特定のフローを更新したユーザーを特定するために、以下のクエリをクエリエディタで実行します。
      (訳注: クエリ最後の ‘2024-06-26 00:00:00’ を監査対象となる期間の開始時間に移動することをお勧めします)

      SELECT json_extract_scalar(requestparameters, '$.InstanceId') as InstanceId, json_extract_scalar(requestparameters, '$.ContactFlowId') as ContactFlowId, userIdentity.arn, eventTimeFROM "default"."cloudtrail_logs"
      WHERE userIdentity.arn IS NOT NULL AND eventName='UpdateContactFlowContent' AND eventTime > '2024-06-26 00:00:00'
    3. クエリ結果には、インスタンス ID とともに、対応するフローを更新したユーザーの Amazon Resource Name (ARN) が表示されます。

      図 4: 重要なコンタクトフローへの不正な変更のクエリ結果

      図 4: 重要なフローへの不正な変更のクエリ結果

    4. ARN のカラムには、ユーザー ID が長い文字列として表示されます。上記の結果に示されているように、ARN フィールドから Amazon Connect の一意のユーザー ID(UUID)を取得できます。UUID は ARN の最後のセグメントにあります。
    5. これらのユーザー ID を使用して、DescribeUser API を呼び出すことでユーザーに関する情報を取得できます。
    6. Amazon Connect のユーザー詳細を確認するには、CloudShell ターミナルに移動し、以下のコマンドを実行します。
      aws connect describe-user --user-id  <ユーザー ID に置き換え> --instance-id  <インスタンス ID に置き換え>

      図 5: describe-user API の結果

      図 5: describe-user のクエリ結果

3. フローと電話番号の関連付けの調査

シナリオ: コンタクトセンターのマネージャーは、どの電話番号がどのフローに関連付けられているか、およびこれらの関連付けの変更を追跡したいと考えています

ソリューション: CloudTrail ログで AssociatePhoneNumberContactFlow API コールを使用して、これらのフローと電話番号のマッピングを監視および監査します。手順は以下の通りです :

  1. Athena コンソールに移動し、クエリエディタを選択します。右側のペインで、クエリエディタを使用してクエリを入力し実行します。 どの電話番号がどのフローに関連付けられているかを確認するには、クエリエディタで以下のクエリを実行します。
    (訳注: クエリ最後の ‘2024-06-26 00:00:00’ を監査対象となる期間の開始時間に移動することをお勧めします)

    SELECT json_extract_scalar(requestparameters, '$.InstanceId') as InstanceId, json_extract_scalar(requestparameters, '$.PhoneNumberId') as PhoneNumberId, userIdentity.arn, eventTimeFROM "default"."cloudtrail_logs"
    WHERE userIdentity.arn IS NOT NULL AND eventName='AssociatePhoneNumberContactFlow'AND eventTime &gt; '2024-06-26 00:00:00'
  2. 上記のクエリの結果は、インスタンス ID 内に関連付けられた電話番号 ID と、フローの変更を行ったユーザーの ARN を提供します。(前のセクションと同様)

    図 6:コンタクトフローと電話番号の関連付けを調査するためのクエリ結果

    図 6:フローと電話番号の関連付けを調査するためのクエリ結果

  3. PhoneNumberId がどの電話番号に対応しているかを確認するには、CloudShell ターミナルに移動し、以下のコマンドを実行します。
    aws connect describe-phone-number --phone-number-id <PhoneNumberIdで置き換え>
    図 7:describe-phone-number クエリの結果

    図 7:describe-phone-number のクエリ結果

まとめ

このブログ記事では、新しくサポートされた AWS CloudTrail による Amazon Connect フロー管理ページの証跡が、組織のコンタクトセンター運用の一元的な分析と監査にどのように役立つかを探りました。CloudTrail と Amazon Athena の強力な組み合わせを活用することで、顧客は重要なフローに対する変更を誰が行い、いつ変更が行われ、どの AWS アカウントまたはリージョンから行われたかについて、いままでになかった可視性と監査可能性を得ることができます。

この記事全体を通じて、この一元化された監査ソリューションの価値を示すいくつかの重要なユースケースを取り上げました。

  1. フローのライフサイクル管理の監査: CloudTrail ログを参照することで、組織はフローの作成、変更、削除を含むライフサイクルを完全に追跡できます。これにより、コンタクトセンター運用チームに価値ある洞察を提供します。
  2. 重要なフローへの不正な変更の検出: 顧客が CloudTrail と Athena を使用して、機密な顧客データを扱うフローへの不正な更新を誰が行ったかを調査する方法を示し、コンタクトセンターのセキュリティとコンプライアンスの確保を支援します。
  3. フローと電話番号の関連付けの調査: 顧客は CloudTrail で記録された追加の API コールを活用して、フローと電話番号間のマッピングなどの重要な関連付けを監視および監査し、これらの関連付けが適切に管理されていることを確認できます。

AWS 環境全体で Amazon Connect フロー管理のアクティビティを一元的に分析する機能により、組織はコンタクトセンター運用の可視性、セキュリティ、およびコンプライアンスを大幅に改善できます。このブログ記事で説明したガイダンスによって、お客様はこの強力な監査ソリューションを迅速に実装し、より適切な意思決定を行い、顧客により良いサービスを提供するために必要な洞察を得ることができます。


筆者について

Guy Bachar

Guy Bachar

Guy Bachar は、ニューヨークを拠点とする AWS のシニアソリューションアーキテクトです。彼はキャピタルマーケットのお客様のクラウドへの移行を支援しています。ID管理、セキュリティ、ユニファイドコミュニケーションに情熱を注いでいます。

Pranjal Gururani

Pranjal Gururani

Pranjal Gururani は、シアトルを拠点とする AWS のシニアソリューションアーキテクトです。Pranjal はさまざまなお客様とビジネス上の課題に対処するクラウドソリューションを構築しています。ハイキング、カヤック、スカイダイビングを楽しみ、余暇には家族と過ごす時間を楽しんでいます。

Agasthi Kothurkar

Agasthi Kothurkar

Agasthi Kothurkar は、ボストンを拠点とする AWS のプリンシパルソリューションアーキテクトです。Agasthi は、クラウドを採用してビジネスを変革する企業のお客様と協力して働いています。彼の専門分野は、クラウドネイティブアプリケーションアーキテクチャ、クラウドマイグレーション、IT 戦略、そして変革です。複雑な実世界のビジネス課題を解決するためにクラウドテクノロジーを適用することに情熱を注いでいます。

翻訳はテクニカルアカウントマネージャー高橋が担当しました。原文はこちらです。