保管中の暗号化 - EventBridge スケジューラ

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

保管中の暗号化

このセクションでは、Amazon EventBridge Scheduler が保管中のデータを暗号化および復号する方法について説明します。保管中のデータは、ス EventBridge ケジューラとサービスの基盤となるコンポーネントに保存されるデータです。 EventBridge スケジューラは AWS Key Management Service (AWS KMS) と統合して、 を使用してデータを暗号化および復号化しますAWS KMS key。 EventBridge スケジューラは、、AWS 所有のキーカスタマーマネージドキーの 2 種類の KMS キーをサポートします。

注記

EventBridge スケジューラは、対称暗号化 KMS キーの使用のみをサポートします。

AWS 所有のキー は、 AWS サービスが複数の AWS アカウントで使用するために所有および管理する KMS キーです。ス AWS 所有のキー EventBridge ケジューラが使用する は AWS アカウントに格納されませんが、ス EventBridge ケジューラはそれらを使用してデータとリソースを保護します。デフォルトでは、ス EventBridge ケジューラは AWS 所有キーを使用してすべてのデータを暗号化および復号します。自分の AWS 所有のキー またはアクセスポリシーを管理する必要はありません。ス EventBridge ケジューラが AWS 所有のキー を使用してデータを保護する場合、料金は発生しません。また、その使用量はアカウントの AWS KMS クォータの一部としてカウントされません。

カスタマーマネージドキーは、ユーザーが作成、所有、管理する AWS アカウントに保存されている KMS キーです。特定のユースケースで、スケ EventBridge ジューラ上のデータを保護する暗号化キーを制御および監査する必要がある場合は、カスタマーマネージドキーを使用できます。カスタマーマネージドキーを選択した場合、キーポリシーを管理する必要があります。カスタマーマネージドキーの使用には、月額料金と、無料利用枠を超えた使用に対する料金がかかります。カスタマーマネージドキーの使用も AWS KMS クォータの一部としてカウントされます。料金の詳細については、「AWS Key Management Service の料金」を参照してください。

暗号化アーティファクト

次の表は、ス EventBridge ケジューラが保管時に暗号化するさまざまなタイプのデータと、各カテゴリでサポートされる KMS キーのタイプを示しています。

データ型 説明 AWS 所有のキー カスタマーマネージドキー

ペイロード (最大 256 KB)

スケジュールをターゲットに配信するように設定するときに、スケジュールの TargetInput パラメータで指定するデータ。

サポート

サポート

識別子と状態

スケジュールの固有の名前と状態 (有効、無効)。

サポート

サポートされていません

スケジューリング設定

繰り返しのスケジュールの場合は rate 式や cron 式などのスケジューリング式、1 回限りの呼び出しの場合はタイムスタンプ、スケジュールの開始日、終了日、タイムゾーン。

サポート

サポートされていません

ターゲット設定

ターゲットの Amazon リソースネーム (ARN)、およびその他のターゲットに関連する設定の詳細。

サポート

サポートされていません

呼び出しと障害動作の設定

柔軟な時間枠設定、スケジュールの再試行ポリシー、配信失敗時に使用するデッドレターキューの詳細。

サポート

サポートされていません

EventBridge スケジューラは、前の表で説明したように、ターゲットペイロードを暗号化および復号化するときにのみカスタマーマネージドキーを使用します。カスタマーマネージドキーを使用することを選択した場合、ス EventBridge ケジューラはペイロードを 2 回暗号化および復号します。1 回はデフォルトの を使用し AWS 所有のキー、もう 1 回は指定したカスタマーマネージドキーを使用します。他のすべてのデータ型では、ス EventBridge ケジューラは保管中のデータ AWS 所有のキー を保護するためにデフォルトのみを使用します。

次のKMS キーの管理セクションでは、ス EventBridge ケジューラでカスタマーマネージドキーを使用するには、IAM リソースとキーポリシーを管理する方法を説明します。

KMS キーの管理

オプションで、スケジュールがターゲットに配信するペイロードを暗号化および復号化するためのカスタマーマネージドキーを指定できます。ス EventBridge ケジューラは、最大 256KB のデータをペイロードを暗号化および復号化します。カスタマーマネージドキーの使用には、月額料金と、無料利用枠を超えた使用に対する料金がかかります。カスタマーマネージドキーの使用は AWS KMS クォータの一部としてカウントされます。料金の詳細については、「AWS Key Management Service の料金」を参照してください。

EventBridge スケジューラは、データを暗号化するスケジュールを作成するプリンシパルに関連付けられた IAM アクセス許可を使用します。つまり、ス EventBridge ケジューラ API を呼び出すユーザーまたはロールに必要な AWS KMS 関連アクセス許可をアタッチする必要があります。さらに、 EventBridge Scheduler はリソースベースのポリシーを使用してデータを復号します。つまり、スケジュールに関連付けられた実行ロールには、データの復号時に AWS KMS API を呼び出すために必要な AWS KMS 関連アクセス許可も必要です。

注記

EventBridge スケジューラは、一時的なアクセス許可の許可の使用をサポートしていません。

次のセクションでは、 AWS KMS キーポリシーと、ス EventBridge ケジューラでカスタマーマネージドキーを使用するために必要な IAM アクセス許可を管理する方法について説明します。

IAM アクセス許可を追加する

カスタマーマネージドキーを使用するには、スケジュールを作成するアイデンティティベースの IAM プリンシパルに次の権限と、スケジュールに関連付ける実行ロールを追加する必要があります。

カスタマーマネージドキーに対するアイデンティティベースのアクセス許可

スケジュールの作成時にス EventBridge ケジューラ API を呼び出すプリンシパル (ユーザー、グループ、またはロール) に関連付けられたアクセス許可ポリシーに、次の AWS KMS アクションを追加する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "scheduler:*", # Required to pass the execution role "iam:PassRole", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Effect": "Allow" }, ] }
  • kms:DescribeKey — 指定したキーが対称暗号化 KMS キーであることを検証するために必要です。

  • kms:GenerateDataKey – ス EventBridge ケジューラがクライアント側の暗号化を実行するために使用するデータキーを生成するために必要です。

  • kms:Decrypt – ス EventBridge ケジューラが暗号化されたデータとともに保存する暗号化されたデータキーを復号化する必要があります。

カスタマーマネージドキーの実行ロール権限

スケジュールの実行ロールのアクセス許可ポリシーに次のアクションを追加して、データを復号するときにス EventBridge ケジューラが AWS KMS API を呼び出すことができるようにする必要があります。

{ "Version": "2012-10-17", "Statement" : [ { "Sid" : "Allow EventBridge Scheduler to decrypt data using a customer managed key", "Effect" : "Allow", "Action" : [ "kms:Decrypt" ], "Resource": "arn:aws:kms:your-region:123456789012:key/your-key-id" } ] }
  • kms:Decrypt – ス EventBridge ケジューラが暗号化されたデータとともに保存する暗号化されたデータキーを復号化する必要があります。

新しいスケジュールを作成するときにス EventBridge ケジューラコンソールを使用して新しい実行ロールを作成する場合、ス EventBridge ケジューラは必要なアクセス許可を実行ロールに自動的にアタッチします。ただし、既存の実行ロールを選択した場合、カスタマーマネージドキーを使用できるようにするには、必要な権限をロールに追加する必要があります。

キーポリシーの管理

を使用してカスタマーマネージドキーを作成する場合 AWS KMS、デフォルトでは、キーにはスケジュールの実行ロールへのアクセスを提供する次のキーポリシーがあります。

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Provide required IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "kms:*", "Resource": "*" } ] }

オプションで、キーポリシーの範囲を実行ロールへのアクセスのみに限定することもできます。これは、ス EventBridge ケジューラリソースでのみカスタマーマネージドキーを使用する場合に実行できます。次のキーポリシーの例を使用して、キーを使用できるス EventBridge ケジューラリソースを制限します。

{ "Id": "key-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Provide required IAM Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::695325144837:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/schedule-execution-role" }, "Action": [ "kms:Decrypt" ], "Resource": "*" } ] }

CloudTrail イベントの例

AWS CloudTrail は、すべての API コールイベントをキャプチャします。これには、ス EventBridge ケジューラがカスタマーマネージドキーを使用してデータを復号するたびに API コールが含まれます。次の例は、カスタマーマネージドキーを使用した kms:Decryptアクションを使用したス EventBridge ケジューラを示す CloudTrail イベントエントリを示しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "ABCDEABCD1AB12ABABAB0:70abcd123a123a12345a1aa12aa1bc12", "arn": "arn:aws:sts::123456789012:assumed-role/execution-role/70abcd123a123a12345a1aa12aa1bc12", "accountId": "123456789012", "accessKeyId": "ABCDEFGHI1JKLMNOP2Q3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "ABCDEABCD1AB12ABABAB0", "arn": "arn:aws:iam::123456789012:role/execution-role", "accountId": "123456789012", "userName": "execution-role" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-10-31T21:03:15Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-10-31T21:03:15Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-north-1", "sourceIPAddress": "13.50.87.173", "userAgent": "aws-sdk-java/2.17.295 Linux/4.14.291-218.527.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/11.0.17+9-LTS Java/11.0.17 kotlin/1.3.72-release-468 (1.3.72) vendor/Amazon.com_Inc. md/internal exec-env/AWS_ECS_FARGATE io/sync http/Apache cfg/retry-mode/standard AwsCrypto/2.4.0", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:123456789012:key/2321abab-2110-12ab-a123-a2b34c5abc67", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "aws:scheduler:schedule:arn": "arn:aws:scheduler:us-west-2:123456789012:schedule/default/execution-role" } }, "responseElements": null, "requestID": "request-id", "eventID": "event-id", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:123456789012:key/2321abab-2110-12ab-a123-a2b34c5abc67" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_256_GCM_SHA384", "clientProvidedHostHeader": "kms.us-west-2.amazonaws.com" } }