

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 加密日志
<a name="jobs-log-encryption"></a>

## 使用托管存储加密 EMR Serverless 日志
<a name="jobs-log-encryption-managed-storage"></a>

要使用您自己的 KMS 密钥加密托管存储中的日志，请在提交作业运行时使用 `managedPersistenceMonitoringConfiguration` 配置。

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

## 使用 Amazon S3 存储桶加密 EMR Serverless 日志
<a name="jobs-log-encryption-s3-buckets"></a>

要使用您自己的 KMS 密钥加密 Amazon S3 存储桶中的日志，请在提交作业运行时使用 `s3MonitoringConfiguration` 配置。

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

## 使用 Amazon 加密 EMR 无服务器日志 CloudWatch
<a name="jobs-log-encryption-cw"></a>

要使用您自己的 KMS 密钥加密 Amazon CloudWatch 中的日志，请在提交任务运行时使用该`cloudWatchLoggingConfiguration`配置。

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

## 日志加密所需的权限
<a name="jobs-log-encryption-permissions"></a>

**Topics**
+ [所需的用户权限](#jobs-log-encryption-permissions-user)
+ [Amazon S3 和托管存储的加密密钥权限](#jobs-log-encryption-permissions-s3)
+ [Amazon 的加密密钥权限 CloudWatch](#jobs-log-encryption-permissions-cw)

### 所需的用户权限
<a name="jobs-log-encryption-permissions-user"></a>

提交作业、查看日志或应用程序的用户 UIs 必须具有使用密钥的权限。您可以在 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` 的权限：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": [
        "arn:aws:kms:*:123456789012:key/12345678-1234-1234-1234-123456789012"
      ],
      "Sid": "AllowKMSGeneratedatakey"
    }
  ]
}
```

------

要启动 Spark 或 Tez UI，请授予用户、组或角色访问 `emr-serverless:GetDashboardForJobRun` API 的权限，如下所示：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "emr-serverless:GetDashboardForJobRun"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEMRSERVERLESSGetdashboardforjobrun"
    }
  ]
}
```

------

### Amazon S3 和托管存储的加密密钥权限
<a name="jobs-log-encryption-permissions-s3"></a>

在托管存储或 S3 存储桶中使用自己的加密密钥对日志进行加密时，请按如下方式配置 KMS 密钥权限。

在 KMS 密钥政策中，`emr-serverless.amazonaws.com` 主体必须具有以下权限：

```
{
    "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 仅将 KMS 密钥用于应用程序 ARN。

作业运行时角色必须在其 IAM 策略中具有以下权限：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": [
        "arn:aws:kms:*:123456789012:key/12345678-1234-1234-1234-123456789012"
      ],
      "Sid": "AllowKMSGeneratedatakey"
    }
  ]
}
```

------

### Amazon 的加密密钥权限 CloudWatch
<a name="jobs-log-encryption-permissions-cw"></a>

要将 KMS 密钥 ARN 关联到日志组，请对作业运行时角色使用以下 IAM 策略。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:AssociateKmsKey"
      ],
      "Resource": [
        "arn:aws:logs:*:123456789012:log-group:my-log-group-name:*"
      ],
      "Sid": "AllowLOGSAssociatekmskey"
    }
  ]
}
```

------

配置 KMS 密钥策略以向 Amazon 授予 KMS 权限 CloudWatch：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "key-default-1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ArnLike": {
          "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:*:123456789012:*"
        }
      },
      "Sid": "AllowKMSDecrypt"
    }
  ]
}
```

------