ログの暗号化
マネージドストレージによる 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:GenerateDataKey
と kms:Decrypt
にアクセス許可が付与されます。
{ "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::
111122223333
:user/user-name
" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }
IAM ポリシーの例
次の IAM ポリシーによって、kms:GenerateDataKey
と kms: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
:*" } } } }