ログの暗号化 - Amazon EMR

ログの暗号化

マネージドストレージによる EMR Serverless ログの暗号化

独自の KMS キーを使用してマネージドストレージのログを暗号化するには、ジョブ実行を送信するときに managedPersistenceMonitoringConfiguration 設定を使用します。

{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration" : { "encryptionKeyArn": "key-arn" } } }

Amazon S3 バケットを使用した EMR Serverless ログの暗号化

独自の KMS キーを使用して Amazon S3 バケットのログを暗号化するには、ジョブ実行を送信するときに s3MonitoringConfiguration 設定を使用します。

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/", "encryptionKeyArn": "key-arn" } } }

Amazon CloudWatch による EMR Serverless ログの暗号化

独自の KMS キーを使用して Amazon CloudWatch のログを暗号化するには、ジョブ実行を送信するときに cloudWatchLoggingConfiguration 設定を使用します。

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, "encryptionKeyArn": "key-arn" } } }

ログ暗号化に必要なアクセス許可

必要なユーザーアクセス許可

ジョブを送信する、またはログやアプリケーション UI を表示するユーザーは、キーを使用するためのアクセス許可を付与されている必要があります。ユーザー、グループ、またはロールの KMS キーポリシーまたは IAM ポリシーでアクセス許可を指定できます。ジョブを送信するユーザーに KMS キーのアクセス許可が付与されていない場合、EMR Serverless はジョブ実行の送信を拒否します。

キーポリシーの例

次のキーポリシーによって、kms:GenerateDataKeykms:Decrypt にアクセス許可が付与されます。

{ "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

IAM ポリシーの例

次の IAM ポリシーによって、kms:GenerateDataKeykms:Decrypt にアクセス許可が付与されます。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }

Spark UI または Tez UI を起動するには、次のように emr-serverless:GetDashboardForJobRun API にアクセスするためのアクセス許可をユーザー、グループ、またはロールに付与する必要があります。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "emr-serverless:GetDashboardForJobRun" ] } }

Amazon S3 とマネージドストレージの暗号化キーのアクセス許可

マネージドストレージまたは S3 バケットで独自の暗号化キーを使用してログを暗号化する場合は、次のように KMS キーのアクセス許可を設定する必要があります。

emr-serverless.amazonaws.com プリンシパルには、KMS キーのポリシーで次のアクセス許可が設定されている必要があります。

{ "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" } } }

セキュリティのベストプラクティスとして、KMS キーポリシーに aws:SourceArn 条件キーを追加することをお勧めします。IAM グローバル条件キー aws:SourceArn によって、EMR Serverless がアプリケーション ARN にのみ KMS キーを使用するように設定できます。

ジョブのランタイムロールには、IAM ポリシーで次のアクセス許可が付与されている必要があります。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }

Amazon CloudWatch の暗号化キーアクセス許可

KMS キー ARN をロググループに関連付けるには、ジョブランタイムロールに次の IAM ポリシーを使用します。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:AWS リージョン:111122223333:log-group:my-log-group-name:*" ] } }

Amazon CloudWatch に KMS アクセス許可を付与するように KMS キーポリシーを設定します。

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.AWS リージョン.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:AWS リージョン:111122223333:*" } } } }