Amazon Web Services ブログ

金融業界特集 : Amazon Comprehend

本投稿は AWSのソリューションアーキテクトである John Formento と Syed Shareef による寄稿を翻訳したものです。

編集者注 : これは、金融業界特集の月刊連載の第二回目の投稿です。 Amazon SageMaker ノートブックインスタンスについて説明した第一回目もお読みください。

—

金融業界特集の月刊ブログ連載では、金融業界のお客様がクラウドサービスの利用承認を効率的にすすめるために注力すべき特定のサービスに関する 5 つの重要な考慮事項 を取り上げます。5 つの領域それぞれに対し、特定のガイダンス、推奨されるリファレンスアーキテクチャ、および当該サービスの利用承認プロセスを効率化するために役立つ専門的なコードが含まれます。これらは、お客様の特定のユースケースおよび環境に合わせて変更が必要となる場合があります。

今回の特集では、金融業界のユーザーが大幅に増加した、 Amazon Comprehend (Comprehend Medical を除く)について取り上げます。Amazon Comprehend では、自然言語処理 (NLP) を使用して、ドキュメントの内容に関するインサイトを引き出すことができます。Amazon Comprehend は UTF-8 形式のあらゆるテキストファイルを処理し、ドキュメント内のエンティティ、キーフレーズ、言語、感情、およびその他の一般的な要素を認識し、インサイトを提供します。


金融機関向けの Amazon Comprehend の一般的なユースケースとして、コールセンターでの通話の文字起こしを分析し、顧客の通話に関するインサイトを収集することが挙げられます。これにより、金融機関は、一般的な傾向を明らかにし、メッセージや提案をパーソナライズし、コールセンターのスタッフが特定の顧客に関して利用可能なすべての情報を把握できるようにし、顧客に最高のエクスペリエンスを提供することができるようになります。

もう 1 つの金融業界でのユースケースとして、 Broadridge の例のように、議決権代理行使のフォームからのデータの抽出が挙げられます。Broadridge は、Amazon Comprehend を他の AWS AI サービスとともに使用することで、議決権代理行使のフォームのレビューと分析に関し、手動での作業を 40% 削減しました。Broadridge は、取締役会、取締役の在職期間、ESG の提案など、SEC Filing (米国証券取引委員会への提出物)からデータポイントを抽出します。その後、これらのデータポイントを使用して Amazon SageMaker でカスタム機械学習モデルを構築し、紛糾する可能性がある株主総会を予測します。これを新商品 (および新規収入源) として、アセットマネジメントやブローカーディーラーの顧客へ提供を開始しました。

最後に、 FINRA は Amazon Comprehend を活用して、非構造化データを含む何百万ものドキュメントを処理およびレビューしています。このプロセスにおいて、FINRA は手動レビュープロセスを排除し、Amazon Comprehend を活用して、人間の調査担当者が精査する必要のあるドキュメントを自動的に評価し、フラグ付けしています。

Amazon Comprehend におけるコンプライアンスの達成

セキュリティは、AWS とお客様の間の共有責任です。 AWS は、AWS クラウドにおいて、AWS サービスを実行するインフラストラクチャを保護し、お客様が安全に使用できるサービスを提供する責任を担います。お客様の責任は、お使いの AWS サービスによって決定されます。責任共有モデルでは、お客様側において、最初にネットワーク接続、暗号化、および他の AWS リソースへのアクセスに関する要件を決定する必要があります。これらのトピックについては、今後のセクションで詳しく説明します。

責任共有モデルにおけるAWS側の責任に関し、Amazon Comprehend は以下のコンプライアンスプログラムの対象範囲 に含まれます。以降のセクションでは、責任共有モデルにおける、お客様側の責任に関するトピックを取り上げます。

  • SOC 1,2,3
  • PCI
  • IRAP Protected
  • ISO/IEC 27001:2013, 27017:2015, 27018:2019, and ISO/IEC 9001:2015
  • OSPAR
  • C5
  • MTCS

Amazon Comprehend におけるデータ保護

転送中および保管中のデータを保護するためによく使用されるメカニズムとして、暗号化が挙げられます。転送中の暗号化に関し、ネットワーク経由で Amazon Comprehend にアクセスする場合、お客様は Transport Layer Security(TLS) 1.0 以降をサポートするクライアントを使用して、AWS が公開している API 呼び出しを使用します。ただし、 TLS 1.2 以降を推奨します 。

Comprehend は、Amazon Key Management Service(KMS) と連携 して、Amazon Comprehend サービスアカウントにおいてアタッチされたボリュームに保存されているお客様のデータを暗号化し、お客様が管理している Amazon S3 バケットへの出力データを暗号化するメカニズムを提供します。入力データは Amazon S3 に保存されるため、 S3 が提供する保管時の暗号化のオプションを活用できます。

特定の Amazon Comprehend アクションが実行されているときに確実に暗号化が行われるようにする予防メカニズムとして、お客様は サービスコントロールポリシー (SCP) と Amazon Comprehend の IAM 条件キーを使用できます。
以下の例は、特定の Amazon Comprehend アクションを呼び出すプリンシパルがボリュームの暗号化のための特定のキーを提供しない限り、リクエストを拒否する SCP の例を示しています。

SCP は、組織内のアクセス許可を管理するために使用できるオーガナイゼーションポリシーの一種です。SCP は、組織内のすべてのアカウントで利用可能なアクセス許可の上限を一元的に制御できます。SCP は、お客様のアカウントをオーガナイゼーションのアクセスコントロールガイドラインの範囲内に留めておくのに役立ちます。


{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Deny-Comprehend-Actions-without-volume-encryption-key",
			"Effect": "Deny",
			"Action": [
				"comprehend:StartEntitiesDetectionJob",
				"comprehend:CreateDocumentClassifier",
				"comprehend:StartDocumentClassificationJob",
				"comprehend:StartSentimentDetectionJob",
				"comprehend:StartKeyPhrasesDetectionJob",
				"comprehend:StartTopicsDetectionJob",
				"comprehend:StartDominantLanguageDetectionJob",
				"comprehend:CreateEntityRecognizer"
			],
			"Resource": "*",
			"Condition": {
				"StringNotLike": {
					"comprehend:VolumeKmsKey": "arn:aws:kms:us-east-2:0000000000000:key/a1b2c3d4-a1b2-1234-a1b2-a1b2c3d4e5f6"
				}
			}
		}
	]
}

Amazon Comprehend におけるコンピューティング環境の分離

Amazon Comprehend は、責任共有モデルにおいて、お客様側にコンピューティングリソースを一切持たないマネージドサービスです。Amazon Comprehend は、マネージドサービスとして、Introduction to AWS Securityホワイトペーパーで説明されている AWS グローバルネットワークセキュリティ手順で保護されています。

また、 インターフェイス VPC エンドポイントを作成することで、お客様は VPC と Amazon Comprehend 間にプライベート接続を確立することもできます。インターフェイスエンドポイントは、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を使わずに Amazon Comprehend API にプライベートにアクセスできるテクノロジーである AWS PrivateLinkを使用しています。インターフェイス VPC エンドポイントを使用すると、VPC 内のインスタンスは Amazon Comprehend API と通信するためにパブリック IP アドレスを必要としません。また、インターフェイス VPC エンドポイントを使用することで、VPC と Amazon Comprehend 間のトラフィックが Amazon ネットワークの外に出ることはありません。

インターフェイスエンドポイントを使用する際、お客様は エンドポイントポリシー をインターフェイスエンドポイントにアタッチします。このポリシーは、接続先のサービスへのアクセスを制御します。Amazon Comprehend のエンドポイントポリシーの例を以下に示します。このポリシーは、VPC エンドポイントにアタッチされると、すべてのリソースのすべてのプリンシパルに対して、指定された Amazon Comprehend アクションへのアクセスを許可します。 また、IAM ポリシーで comprehend:VpcSubnets および comprehend:VpcSecurityGroupIds IAM 条件キーを使用して、サブネットとセキュリティグループを指定することで、プリンシパルがジョブを作成するときに特定の VPC 設定を要求できます。サブネットとセキュリティグループを指定すると、Amazon Comprehend は、いずれかのサブネットのセキュリティグループに関連付けられた Elastic Network Interface(ENI) を作成します。これらの ENI により、AWS Comprehend のジョブコンテナが VPC 内のリソースに接続できるようになります。


{
	"Statement":[
		{
			"Principal":"*",
			"Effect":"Allow",
			"Action":[
				"comprehend:DetectEntities",
				"comprehend:StartEntitiesDetectionJob",
				"comprehend:CreateDocumentClassifier",
				"comprehend:StartDocumentClassificationJob",
				"comprehend:StartSentimentDetectionJob",
				"comprehend:StartKeyPhrasesDetectionJob",
				"comprehend:StartTopicsDetectionJob",
				"comprehend:StartDominantLanguageDetectionJob",
				"comprehend:CreateEntityRecognizer"
			],
			"Resource":"*"
		}
	]
}

同様に、リソースベースのポリシーを使用することで、お客様は VPC エンドポイントからのアクセスのみを許可するようにリソースへのアクセスを制限できます。例えば、 S3 バケットポリシーを使用することで、お客様は特定の Amazon S3 バケットへのアクセスをエンドポイントを通じてのみ許可するよう制限できます。これにより、トラフィックはプライベートに保たれ、エンドポイントのみを通過します。以下の例では、VPC vpc-111bbb22 が my_secure_bucket とそのオブジェクトにアクセスすることを許可するポリシーの例を示しています。このポリシーは、指定された VPC が使用されていない場合、バケットへのすべてのアクセスを拒否します。aws:sourceVpc 条件では、VPC リソースの Amazon リソースネーム(ARN)は必要なく、VPC ID のみが必要です。


{
	"Version": "2012-10-17",
	"Id": "Policy1415115909152",
	"Statement": [
		{
			"Sid": "Access-to-specific-VPC-only",
			"Principal": "*",
			"Action": "s3:*",
			"Effect": "Deny",
			"Resource": ["arn:aws:s3:::my_secure_bucket",
           				 "arn:aws:s3:::my_secure_bucket/*"],
			"Condition": {
				"StringNotEquals": {
					"aws:sourceVpc": "vpc-111bbb22"
				}
			}
    	}
  	]
}

Amazon Comprehend における API による監査の自動化

AWS Config はリソースの設定をモニタリングし、リソースが非準拠状態になったときにアラートを発する予め用意されたルールを提供します。 入力および送信先の S3 バケットでは、 S3 マネージド設定ルール を使用して、暗号化標準への準拠をモニタリングできます。

Amazon Comprehend に対する API 呼び出しは、AWS CloudTrail に記録されます。 AWS CloudTrail は、160 を超える AWS のサービスについて、AWS API 呼び出しとリソースへの変更の集約リポジトリを提供します。 Amazon Comprehend でジョブを実行する方法には、 同期と非同期の 2 種類があります。 Amazon Comprehend には、承認されたジョブのみが非同期的に実行されるよう、モニタリングする必要がある主要な API がいくつかあります。

• CreateDocumentClassifier および StartDocumentClassificationJob
• StartDominantLanguageDetectionJob
• CreateEntityRecognizer および StartEntitiesDetectionJob
• StartEventsDetectionJob
• StartKeyPhrasesDetectionJob
• StartPiiEntitiesDetectionJob
• StartSentimentDetectionJob
• StartTopicsDetectionJob

Amazon Comprehend ジョブを開始または作成できるすべての API には、InputDataConfig および OutputDataConfig パラメータがあります。承認された S3 バケットが両方に設定され、正しい KmsKeyId が OutputDataConfig に設定されていることを確認することをお勧めします。ジョブ処理にストレージボリュームを使用するジョブの場合、API 呼び出しの VolumeKmsKeyId パラメータ経由で正しい暗号化が設定されていることを確認することをお勧めします。すべての Comprehend ジョブには DataAccessRoleArn が必要ですが、データへの最小権限のアクセスが付与されていることを確認するため、 API 呼び出しに対し、CloudTrail を使って DataAccessRoleArn をモニタリングできます。

Amazon Comprehend は、以下の API を使用した同期ジョブをサポートしています。

• BatchDetectDominantLanguage
• BatchDetectEntities
• BatchDetectKeyPhrases
• BatchDetectSentiment
• BatchDetectSyntax

これらの API では、Amazon Comprehend はリアルタイムでデータを処理し、結果を返すため、同期処理中には同じ暗号化オプションを使用できません。

ジョブの実行に関連するものだけでなく、Amazon Comprehend API の完全なリストについては、 Comprehend API リファレンスを参照してください。

以下に、StartKeyPhrasesDetectionJob API の CloudTrail ログの例を示します。


{"eventVersion": "1.05",
	"userIdentity": {"type": "AssumedRole”,`
		"principalId": "XXXXXX”,
		"arn": "arn:aws:sts::12345678910:assumed-role/UserRole/John”,
		"accountId": "12345678910",
		"accessKeyId": "ASIA3VZEXAMPLE”,
		"sessionContext": {"sessionIssuer": {"type": "Role",
			"principalId": "AROAICFHPEXAMPLE",
			"arn": "arn:aws:iam::12345678910:role/UserRole",
				"accountId": "12345678910",
				"userName": "UserRole"
			},
			"webIdFederationData": {},
			"attributes": {"mfaAuthenticated": "false",
				"creationDate": "2020-04-29T15:46:04Z"
			}
		}
	},
	"eventTime": "2020-04-29T16:42:39Z",
	"eventSource": "comprehend.amazonaws.com",
	"eventName": "StartKeyPhrasesDetectionJob",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "3.20.236.234",
	"userAgent": "aws-internal/3 aws-sdk-java/1.11.761 Linux/4.14.165-102.205.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/25.201-b09 java/1.8.0_201 vendor/Oracle_Corporation, canary-generated exec-env/AWS_Lambda_java8",
	"requestParameters": {"inputDataConfig": {"s3Uri": "s3://dataset-prod-us-east-2/ONE_DOC_PER_LINE/KP/FOUR_KB",
						 "inputFormat": "ONE_DOC_PER_LINE"
	},
    "outputDataConfig": {"s3Uri": "s3://datasets3bucke-y6icltvagurj/JSON/abcd1234-6d84-4b09-bea3-abcdef123456",
						 "kmsKeyId": "arn:aws:kms:us-east-2:12345678910:key/abcd1234-6ab3-4bab-90ab-abcdef123456"
    },
	"dataAccessRoleArn": "arn:aws:iam::12345678910:role/DataAccessRoleXYZ",
	"languageCode": "en",
	"clientRequestToken": "d9e4f777-8b4e-4249-8ebb-b7495acb800b",
	"volumeKmsKeyId": "arn:aws:kms:us-east-2:12345678910:key/abcd1234-c459-4d20-bb39-abcdef123456"
	},
	"responseElements": {"jobId": "2102905798f0d44a04da91fbd12ed60e",
						 "jobStatus": "SUBMITTED"
	},
	"requestID": "f202914c-f5cf-4f2d-a4c7-5f30d101fe19",
	"eventID": "692e3a17-40a2-491a-a4ce-a275c4c4ce76",
	"readOnly": false,
	"resources": [
		{"accountId": "12345678910",
		 "type": "AWS::KMS::Key",
		 "ARN": "arn:aws:kms:us-east-2:12345678910:key/abcd1234-6ab3-4bab-90ab-abcdef123456"
		},
		{"accountId": "12345678910",
         "type": "AWS::KMS::Key",
		 "ARN": " arn:aws:kms:us-east-2:12345678910:key/abcd1234-6ab3-4bab-90ab-abcdef123456"
		},
		{"accountId": "12345678910",
		 "type": "AWS::S3::Object",
		 "ARN": "s3://mydata-dev-us-east-2/ONE_DOC_PER_LINE/KP/FOUR_KB"
		},
		{"accountId": "12345678910",
         "type": "AWS::S3::Object",
		 "ARN": "s3://mybucket/JSON/00f706b3-6d84-4b09-bea3-88084f9cb6b0"
		},
		{"accountId": "12345678910",
		 "type": "AWS::IAM::Role",
		 "ARN": "arn:aws:iam::12345678910:role/DataAccessRoleXYZ"
		}
	],
	"eventType": "AwsApiCall",
	"recipientAccountId": "12345678910"
}

Amazon Comprehend における運用アクセスとセキュリティ

金融業界における AWS のお客様は、AWS に保存されたデータへのアクセスに対する可視性を必要とする場合があります。AWS Artifact では、AWS SOC 2 Type II レポート、ISO 27001 などの第三者監査レポートを確認できます。

特定の AWS の人工知能 (AI) サービスをすでに使用している、または使用予定のある 金融業界におけるAWS のお客様は、Amazon Comprehend のサービス改善目的でそれらのコンテンツが保存されたり使用されたりしないようオプトアウトできます。 お客様は、組織全体の オプトアウトポリシー を設定して、組織のメンバーのすべてのアカウントに対し AI オプトアウト設定を選択し、適用できます。

以下の例は、組織のルートにアタッチして、組織内のアカウントが AI サービスからオプトアウトし、子アカウントがオプトアウトポリシーを変更できないようにするポリシーを示しています。


{
	"services": {
		"@@operators_allowed_for_child_policies": ["@@none"],
		"default": {
			"@@operators_allowed_for_child_policies": ["@@none"],
			"opt_out_policy": {
				"@@operators_allowed_for_child_policies": ["@@none"],
				"@@assign": "optOut"
			}
		}
	}
}

まとめ

本記事では、Amazon Comprehend をレビューし、金融業界のお客様が、コンプライアンスの達成、データ保護、コンピューティング環境の分離、API による監査の自動化、運用アクセスとセキュリティ、という 5 つのカテゴリにおいてサービスの利用承認を加速させるために役立つ主要な情報を紹介しました。上記ガイダンスは、全てのケースにそのまま適用可能なアプローチではないにせよ、お客様の組織のセキュリティとコンプライアンス要件を満たせるよう変更可能であり、また、このガイダンスは Amazon Comprehend の主な領域を一覧にまとめたものとなります。

次回の記事が掲載されるまでの間、 AWS for Industries ブログ にぜひアクセスしてみてください。また、今後の金融サービスのニュースやベストプラクティスの記事を乞うご期待ください。

 

John Formento

John Formento

John は、Amazon Web Services のソリューションアーキテクトです。AWS クラウドで安全でスケーラブルなソリューションを設計することで、大企業における目標達成を支援しています。John は、AWS 認定ソリューションアーキテクト – プロフェッショナル、DevOps エンジニア – プロフェッショナルを含む 6 つの AWS 認定を保持しています。

Syed Shareef

Syed Shareef

Syed は、シャーロットに拠点を置くシニアセキュリティソリューションアーキテクトです。大規模な金融機関のお客様が、各々のリスク選好度に合わせてAWS におけるビジネス目標を達成できるよう支援しています。

翻訳はソリューションアーキテクトの 澤野 佳伸 が担当しました。原文はこちらです。