Amazon Managed Service for Apache Flink のキー管理 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

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

Amazon Managed Service for Apache Flink のキー管理

Amazon MSF では、AWS マネージドキー または独自の カスタマーマネージドキー (CMK) のいずれかを使用してデータを暗号化できます。AWS Key Management Service(AWS KMS) CMKs は、自分で作成、所有、管理する暗号化キーです。

デフォルトでは、Amazon MSF は AWS 所有のキー(AOKs) を使用して、エフェメラル (実行中のアプリケーションストレージ) および耐久性のある (耐久性のあるアプリケーションストレージ) ストレージでデータを暗号化します。つまり、Flink チェックポイントまたはスナップショットの対象となるすべてのデータは、デフォルトで暗号化されます。AOK は Amazon MSF のデフォルト暗号化方法であり、追加の設定は不要です。転送中のデータを暗号化するため、Amazon MSF はデフォルトで TLS および HTTP+SSL を使用し、追加の設定や構成は不要です。

Amazon MSF では、CMK は AWS KMS で作成、所有、管理するキーを使用し、アプリケーションのデータを暗号化できる機能です。

CMK で暗号化されるものは?

Amazon MSF アプリケーションでは、Flink チェックポイントまたはスナップショットの対象となるデータは、そのアプリケーション用に定義した CMK によって暗号化されます。その結果、CMK は実行中のアプリケーションストレージまたは永続的なアプリケーションストレージのいずれかに保存されているデータを暗号化します。次のセクションでは、Amazon MSF アプリケーション用の CMK をセットアップする手順について説明します。

キーローテーションポリシー

Amazon MSF は、CMK のキーローテーションポリシーを管理しません。キーローテーションはお客様の責任で行ってください。お客様が CMK を作成して維持するためです。Amazon MSF で CMK にキーローテーションポリシーを使用する方法の詳細については、「キーローテーションポリシー」を参照してください。

CMK で暗号化されないものは?

ソースとシンク

データソースおよびシンクの暗号化は Amazon MSF によって管理されません。お使いのソースまたはシンクの設定、あるいはアプリケーションコネクタの設定によって管理されます。

暗号化の遡及的な適用

Amazon MSF の CMK には、既存の履歴スナップショットに CMK を遡及的に適用するサポートはありません。

ログ暗号化

現在、Amazon MSF はアプリケーションコード jar によって生成されたログに対し、KMS CMK を使用したログ暗号化をサポートしていません。ログには、CMK 暗号化が必要なデータが含まれていないことを確認する必要があります。

転送中のデータの暗号化

CMK を使用して、送信中のデータを暗号化することはできません。デフォルトでは、Amazon MSF は TLS または HTTP および SSL を使用してすべての転送中のデータを暗号化します。

サポートされる KMS キータイプ

Amazon MSF の CMK は対称キーをサポートしています。

KMS キーのアクセス許可

Amazon MSF の CMK には、次の KMS アクションを実行するためにアクセス許可が必要です。これらのアクセス許可は、アクセスを検証し、CMK で暗号化された実行中のアプリケーションストレージを作成し、CMK で暗号化されたアプリケーションの状態を永続的なアプリケーションストレージに保存するために必要です。

  • kms:DescribeKey

    KMS キーエイリアスをキー ARN に解決するアクセス許可を付与します。

  • kms:Decrypt

    永続的なアプリケーション状態にアクセスし、実行中のアプリケーションストレージをプロビジョニングするアクセス許可を付与します。

  • kms:GenerateDataKey

    永続的なアプリケーションの状態を保存するアクセス許可を付与します。

  • kms:GenerateDataKeyWithoutPlaintext

    実行中のアプリケーションストレージをプロビジョニングするアクセス許可を付与します。

  • kms:CreateGrant

    実行中のアプリケーションストレージにアクセスするアクセス許可を付与します。

KMS 暗号化コンテキストと制約

暗号化されたデータ (つまり、kms:EncryptionContext:aws:kinesisanalytics:arn) を読み書きするためのキーにアクセスするとき、Amazon MSF の CMK は暗号化コンテキストを提供します。暗号化コンテキストに加えて、ソースコンテキスト aws:SourceArn および aws:SourceAccount は、永続的なアプリケーションストレージを読み書きするときに提供されます。

暗号化された実行中のアプリケーションストレージをプロビジョニングする許可を作成すると、Amazon MSF CMK は制約タイプの EncryptionContextSubset で許可を作成し、"kms:GrantOperations": "Decrypt" を介して 暗号化 オペレーションのみが許可されます。

キーローテーションポリシー

Amazon MSF は、CMK のキーローテーションポリシーを管理しません。お客様が CMK を作成および管理するため、キーローテーションはご自身の責任です。

KMS では、自動または手動キーローテーションのいずれかを使用して、CMK の新しい暗号化マテリアルを作成します。キーをローテーションする方法の詳細については、「AWS Key Management Service デベロッパーガイド」の「Rotate AWS KMS keys」を参照してください。

Amazon MSF で CMK のキーをローテーションするとき、オペレータ (API 発信者) が以前のキーと新しいキーの両方に対するアクセス許可を持っていることを確認する必要があります。

注記

アプリケーションは CMK を使用するように設定された後に、AOK で暗号化されたスナップショットから開始できます。アプリケーションは、古い CMK で暗号化されたスナップショットから開始することもできます。スナップショットからアプリケーションを開始するには、オペレータ (API 発信者) は古いキーと新しいキーの両方のアクセス許可が必要です。

Amazon MSF では、CMK 暗号化を使用してアプリケーションを停止して再起動することをお勧めします。これにより、実行中のアプリケーションストレージおよび永続的なアプリケーションストレージのすべてのデータに新しいローテーションマスターキーが適用されます。アプリケーションを停止して再起動しない場合、新しいキーマテリアルは永続的なアプリケーションストレージにのみ適用されます。実行中のアプリケーションストレージは、以前のローテーションキーマテリアルを使用して暗号化され続けます。

CMK に使用される AWS KMS keyARN を変更する場合は、Amazon MSF で UpdateApplication を使用する必要があります。CMK の変更を適用する UpdateApplication の一部として Flink アプリケーションが再起動されます。

注記

エイリアスまたはエイリアス ARN を指定すると、Amazon MSF によってエイリアスがキー ARN に解決され、キー ARN がアプリケーションの設定済みキーとして保存されます。

最小特権キーポリシーステートメント

キーポリシーステートメントの詳細については、「KMS キーポリシーを作成する」および「アプリケーションライフサイクルオペレータ (API 発信者) のアクセス許可 」を参照してください。

AWS CloudTrailログエントリの例

Amazon MSF が で CMKs を使用する場合AWS KMS、 はすべての AWS KMSAPI コールと関連する詳細AWS CloudTrailを自動的にログに記録します。これらのログには、リクエストAWS のサービスの作成、KMS キー ARN、実行された API アクション、暗号化されたデータを除くタイムスタンプなどの情報が含まれます。これらのログはどのサービスがいつキーにアクセスしたか示すことで、コンプライアンス、セキュリティモニタリング、トラブルシューティングに不可欠な監査証跡を提供します。

例 1: Amazon MSF で引き受けたロールを使用して API コールをAWS KMS復号する

次の CloudTrail ログでは、CMK でテスト kms:Decrypt オペレーションを実行する Amazon MSF が示されます。Amazon MSF は CreateApplication API を使用しながら、Operator ロールを使用してこのリクエストを行います。次のログにはターゲット KMS キー ARN、関連付けられた Amazon MSF アプリケーション (MyCmkApplication)、オペレーションのタイムスタンプなどの重要な詳細が含まれています。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "REDACTED", "arn": "arn:aws:sts::123456789012:assumed-role/Operator/CmkTestingSession", "accountId": "123456789012", "accessKeyId": "REDACTED", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "REDACTED", "arn": "arn:aws:iam::123456789012:role/Operator", "accountId": "123456789012", "userName": "Operator" }, "attributes": { "creationDate": "2025-08-07T13:29:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "kinesisanalytics.amazonaws.com" }, "eventTime": "2025-08-07T13:45:45Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "kinesisanalytics.amazonaws.com", "userAgent": "kinesisanalytics.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" }, "keyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "dryRun": true }, "responseElements": null, "additionalEventData": { "keyMaterialId": "REDACTED" }, "requestID": "56764d19-1eb1-48f1-8044-594aa7dd05c4", "eventID": "1371b402-f1dc-4c47-8f3a-1004e4803c5a", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }
例 2: 直接サービス認証を使用した Amazon MSF での API コールのAWS KMS復号

次の CloudTrail ログでは、CMK でテスト kms:Decrypt オペレーションを実行する Amazon MSF が示されます。Amazon MSF は、ロールを引き受ける代わりに、直接AWSservice-to-service認証を使用してこのリクエストを行います。次のログにはターゲット KMS キー ARN、関連付けられた Amazon MSF アプリケーション (MyCmkApplication)、 オペレーションの共有イベント ID などの重要な詳細が含まれています。

{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "invokedBy": "kinesisanalytics.amazonaws.com" }, "eventTime": "2025-08-07T13:45:45Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "kinesisanalytics.amazonaws.com", "userAgent": "kinesisanalytics.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" }, "dryRun": true }, "responseElements": null, "additionalEventData": { "keyMaterialId": "REDACTED" }, "requestID": "5fe45ada-7519-4608-be2f-5a9b8ddd62b2", "eventID": "6206b08f-ce04-3011-9ec2-55951d357b2c", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "Application-account-ID", "sharedEventID": "acbe4a39-ced9-4f53-9f3c-21ef7e89dc37", "eventCategory": "Management" }