翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
KMS CMK によるディスク暗号化
EMR Serverless は、サービス所有の暗号化キーを使用して、デフォルトでワーカーにアタッチされたすべてのディスクを暗号化します。オプションで、独自の AWS KMS カスタマーマネージドキー (CMKs) を使用してこれらのディスクを暗号化することもできます。これにより、キーポリシーの確立と維持、キーの使用状況の監査など、暗号化キーをより詳細に制御できます。
ディスク暗号化は、アプリケーションの作成時または個々のジョブの送信時に設定できます。アプリケーションレベルで有効にすると、そのアプリケーションのすべてのジョブが暗号化設定を継承します。ジョブの送信時にディスク暗号化設定を指定することで、アプリケーションのデフォルトを上書きすることもできます。
注記
EMR Serverless ディスク暗号化は、対称 KMS キーのみをサポートします。非対称 KMS キーはサポートされていません。で作成された対称暗号化 KMS キーを使用する必要があります AWS KMS。詳細については AWS KMS、「 とは」を参照してください AWS KMS。
暗号化コンテキストの使用
必要に応じて、EMR Serverless は暗号化コンテキストを使用して、暗号化オペレーションに追加の認証済みデータを提供します。暗号化コンテキストは、シークレットではない追加の認証済みデータを含むことができるキーと値のペアのセットです。暗号化コンテキストは暗号化されたデータに暗号的にバインドされるため、データの復号には同じ暗号化コンテキストが必要です。
EMR Serverless では、ディスク暗号化を設定するときにカスタム暗号化コンテキストを指定できます。この暗号化コンテキストは、KMS オペレーションの特定と理解に役立つ AWS CloudTrail ログに含まれています。
注記
機密情報は AWS CloudTrail 、ログにプレーンテキストで表示されるため、暗号化コンテキストに保存しないでください。
カスタマーマネージドキーを使用したディスク暗号化の設定
CreateApplication
独自の KMS キーを使用してディスクを暗号化するには、EMR Serverless アプリケーションを作成するときに diskEncryptionConfigurationパラメータを含めます。
aws emr-serverless create-application \ --type TYPE \ --name APPLICATION_ID \ --release-label RELEASE_LABEL \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
UpdateApplication
KMS キー ARN および/または暗号化コンテキストを更新するには、アプリケーションを更新するときに diskEncryptionConfigurationパラメータを新しい値で指定します。
aws emr-serverless update-application \ --name APPLICATION_ID \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
注記
アプリケーションで設定されたディスク暗号化の設定を解除するには、更新アプリケーションdiskEncryptionConfiguration中に空の を渡します。
StartJobRun
独自の KMS キーを使用してディスクを暗号化するには、ジョブ実行を送信するときに diskEncryptionConfiguration設定を使用します。
--configuration-overrides '{ "diskEncryptionConfiguration": { "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } } }'
パブリック Livy エンドポイント
パブリック Livy エンドポイントを介して Spark セッションを作成するときに、独自の KMS キーを使用してディスクを暗号化するには、セッションの conf オブジェクトで暗号化設定を指定します。
data = { "kind": "pyspark", "heartbeatTimeoutInSecond": 60, "conf": { "emr-serverless.session.executionRoleArn": "role_arn", "spark.emr-serverless.disk.encryptionKeyArn": "key-arn", "spark.emr-serverless.disk.encryptionContext": "key1:value1,key2:value2" # Optional } } # Send request to create a session with the Livy API endpoint request = AWSRequest(method='POST', url=endpoint + "/sessions", data=json.dumps(data), headers=headers)
ディスク暗号化に必要なアクセス許可
EMR Serverless の暗号化キーのアクセス許可
独自の暗号化キーを使用してディスクを暗号化する場合は、emr-serverless.amazonaws.comプリンシパルに次の KMS キーのアクセス許可を設定する必要があります。
-
kms:GenerateDataKey: ディスクボリュームを暗号化するためのデータキーを生成するには -
kms:Decrypt: 暗号化されたディスクコンテンツにアクセスするときにデータキーを復号するには
{ "Effect": "Allow", "Principal":{ "Service": "emr-serverless.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:emr-serverless:region:aws-account-id:/applications/application-id" }, "StringEquals": { "kms:EncryptionContext:applicationId": "application-id", "aws:SourceAccount": "aws-account-id" } } }
セキュリティのベストプラクティスとして、KMS キーポリシーに aws:SourceArn 条件キーを追加することをお勧めします。IAM グローバル条件キー aws:SourceArn によって、EMR Serverless がアプリケーション ARN にのみ KMS キーを使用するように設定できます。さらに、 aws:SourceAccount条件キーを含めると、KMS キーの使用を条件で指定された AWS アカウント ID から送信されるリクエストに制限することで、別のセキュリティレイヤーが提供されます。
ジョブのランタイムロールには、IAM ポリシーで次のアクセス許可が付与されている必要があります。
{ "Sid": "Enable GDK and Decrypt", "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
必要なユーザーアクセス許可
ジョブを送信するユーザーには、 キーを使用するアクセス許可が必要です。ユーザー、グループ、またはロールの KMS キーポリシーまたは IAM ポリシーでアクセス許可を指定できます。ジョブを送信するユーザーに KMS キーのアクセス許可が付与されていない場合、EMR Serverless はジョブ実行の送信を拒否します。
キーポリシーの例
次のキーポリシーは、kms:DescribeKey、、kms:GenerateDataKeyおよび へのアクセス許可を提供しますkms:Decrypt。
-
kms:DescribeKey: カスタマー管理の KMS キーが有効であること、および使用する前に SYMMETRIC であることを確認します。
{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Enable GDK and Decrypt", "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "emr-serverless.region.amazonaws.com", "kms:EncryptionContext:key": "value" } } }
セキュリティのベストプラクティスとして、KMS キーポリシーに kms:viaService 条件キーを追加することをお勧めします。これにより、KMS キーの使用が emr-serverless からの検証リクエストに制限されます。
IAM ポリシーの例
次の IAM ポリシーは、kms:DescribeKey、、kms:GenerateDataKeyおよび へのアクセス許可を提供しますkms:Decrypt。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
キー使用状況のモニタリング
EMR Serverless through でカスタマーマネージドキーの使用をモニタリングできます AWS CloudTrail。 は、EMR Serverless コンソール、EMR Serverless API、 AWS CLI、または AWS SDK からの呼び出しなど、 へのすべての API 呼び出しをイベント AWS KMS として AWS CloudTrail キャプチャします。
キャプチャされた情報には、指定した暗号化コンテキストが含まれており、KMS キーを使用した特定の EMR Serverless リソースの特定と監査に役立ちます。たとえば、 に次のようなイベントが表示される場合があります AWS CloudTrail。の使用の詳細については AWS CloudTrail、AWS CloudTrail 「 ユーザーガイド」を参照してください。
GenerateDataKey
EMR Serverless が暗号化されたディスクボリュームを作成している場合の GenerateDataKey オペレーションのサンプルイベント
{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "principalId": "user", "invokedBy": "AWS Internal" }, "eventTime": "2025-07-28T21:43:51Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "ipAddress", "userAgent": "userAgent", "requestParameters": { "encryptionContext": { "applicationId": "test" }, "keyId": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "145c963debe558dfb01848d2a4539da940f3478852f86cfe2f52d5df796a5a02" }, "requestID": "cc9d1c5e-97c4-4a4f-ae7a-e576sample", "eventID": "0b0fef09-f28d-4da8-a5a1-17b74sample", "readOnly": true, "resources": [ { "accountId": "account", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "accountId", "eventCategory": "Management" }
Decrypt
EMR Serverless が暗号化されたデータにアクセスしている場合の Decrypt オペレーションのサンプルイベント。
{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "principalId": "user", "invokedBy": "AWS Internal" }, "eventTime": "2025-07-28T21:43:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "ipAddress", "userAgent": "userAgent", "requestParameters": { "encryptionContext": { "applicationId": "test" }, "keyId": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "145c963debe558dfb01848d2a4539da940f3478852f86cfe2f52d5df796a5a02" }, "requestID": "cc9d1c5e-97c4-4a4f-ae7a-e576sample", "eventID": "0b0fef09-f28d-4da8-a5a1-17b74sample", "readOnly": true, "resources": [ { "accountId": "account", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "accountId", "eventCategory": "Management" }
詳細はこちら
次のリソースは、保管時のデータ暗号化についての詳細を説明しています。
-
AWS KMS 基本概念の詳細については、「 AWS KMS デベロッパーガイド」を参照してください。
-
のセキュリティのベストプラクティスの詳細については AWS KMS、「 AWS KMS デベロッパーガイド」を参照してください。