本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon EMR 控制台或使用 Amazon CLI
本主题介绍使用 Amazon EMR 控制台和创建安全配置的一般过程 Amazon CLI,然后是包含加密、身份验证和IAM角色的参数的参考EMRFS。有关这些功能的更多信息,请参阅以下主题:
使用控制台创建安全配置
在 https://console.aws.amazon.com/em
r 上打开亚马逊EMR控制台。 -
在导航窗格中,选择 Security Configurations (安全配置)、Create security configuration (创建安全配置)。
-
键入安全配置的 Name (名称)。
-
按照以下部分中所述选择 Encryption (加密)、Authentication (身份认证) 选项,然后选择 Create (创建)。
要使用创建安全配置 Amazon CLI
-
使用以下示例中所示的
create-security-configuration
命令。-
对于
SecConfigName
,请指定安全配置的名称。这是您在创建使用此安全配置的集群时指定的名称。 -
对于
,请指定内联JSON结构或本地JSON文件的路径,例如SecConfigDef
。这些JSON参数定义了加密、EMRFS访问 Amazon S3 的IAM角色和身份验证的选项,如以下部分所述。file://MySecConfig.json
aws emr create-security-configuration --name "
SecConfigName
" --security-configurationSecConfigDef
-
配置数据加密
在配置安全配置中的加密之前,创建用于加密的密钥和凭证。有关更多信息,请参阅提供加密静态数据的密钥和提供证书,用于使用 Amazon EMR 加密对传输中的数据进行加密。
在创建安全配置时,需要指定两组加密选项:静态数据加密和传输中数据加密。静态数据加密选项包括带加密功能的 Amazon S3 EMRFS 和本地磁盘加密。传输加密选项为某些支持传输层安全的应用程序启用开源加密功能(TLS)。静态选项和传输中选项可以同时启用或分别启用。有关更多信息,请参阅 通过 Amazon 对静态和传输中的数据进行加密 EMR。
注意
使用时 Amazon KMS,会收取加密密钥的存储和使用费用。有关更多信息,请参阅Amazon KMS 定价
使用控制台指定加密选项
根据以下准则选择 Encryption (加密) 下的选项。
-
选择静态加密下的选项以加密存储在文件系统中的数据。
您可以选择加密 Amazon S3 和/或本地磁盘中的数据。
-
在 S3 数据加密下,对于加密模式,选择一个值来确定亚马逊如何EMR加密 Amazon S3 数据。EMRFS
下一步取决于所选的加密模式:
-
SSE-S3
指定使用 Amazon S3 托管密钥进行服务器端加密。您无需执行任何其它操作,因为 Amazon S3 将为您处理密钥。
-
SSE-KMS 或 CSE-KMS
使用 Amazon KMS托管密钥 (SSE-KMS) 指定服务器端加密,或使用托 Amazon KMS管密钥 (-) 指定客户端加密。CSE KMS对于 Amazon KMS key,选择一个键。该密钥必须与您的 EMR 集群同在一个区域中。有关密钥要求,请参阅Amazon KMS keys 用于加密。
-
CSE-自定义
使用自定义客户端根密钥(CSE-custom)指定客户端加密。对于 S3 对象,请输入您的自定义密钥提供程序JAR文件在 Amazon S3 ARN 或 Amazon S3 中的位置。然后,在密钥提供程序类中,输入在实现该EncryptionMaterialsProvider 接口的应用程序中声明的类的完整类名。
-
-
在 Local disk encryption (本地磁盘加密) 下,为 Key provider type (密钥提供程序类型) 选择一个值。
-
Amazon KMS key
选择此选项以指定一个 Amazon KMS key。对于 Amazon KMS key,选择一个键。该密钥必须与您的 EMR 集群同在一个区域中。有关密钥要求的更多信息,请参阅Amazon KMS keys 用于加密。
EBS加密
当您指定 Amazon KMS 为密钥提供商时,可以启用EBS加密以加密EBS根设备和存储卷。要启用此类选项,您必须向 Amazon EMR 服务角色
EMR_DefaultRole
授予使用 Amazon KMS key 您指定的权限。有关密钥要求的更多信息,请参阅通过为密KMS钥提供额外权限来启用EBS加密。 -
自定义
选择此选项可指定自定义密钥提供程序。对于 S3 对象,请输入您的自定义密钥提供程序JAR文件在 Amazon S3 ARN 或 Amazon S3 中的位置。在密钥提供程序类中,输入在实现 EncryptionMaterialsProvider 接口的应用程序中声明的类的完整类名。您在此处提供的类名必须与为 CSE-Custom提供的类名不同。
-
-
选择传输中加密,为传输中的数据启用开源TLS加密功能。根据以下指南选择 Certificate provider type (凭证提供程序类型):
-
PEM
选择此选项可使用PEM您在 zip 文件中提供的文件。压缩文件中需要两个工件:privateKey.pem 和 certificateChain .pem。第三个文件,trustedCertificates.pem,是可选的。有关详细信息,请参阅提供证书,用于使用 Amazon EMR 加密对传输中的数据进行加密。对于 S3 对象,请指定 zip 文件字段在 Amazon S3 ARN 或 Amazon S3 中的位置。
-
自定义
选择此选项以指定自定义证书提供商,然后,对于 S3 对象,输入您的自定义证书JAR提供者文件在 Amazon S3 或 Amazon S3 ARN 中的位置。在密钥提供程序类中,输入在实现TLSArtifactsProvider接口的应用程序中声明的类的完整类名。
-
使用指定加密选项 Amazon CLI
以下各节使用示例场景来说明不同配置和密钥提供程序的正确格式,然后是JSON参数和相应值的参考。--security-configuration JSON
传输中数据加密选项示例
下面的示例将说明以下情景:
-
传输中的数据加密已启用,静态数据加密已禁用。
-
Amazon S3 中一个包含凭证的 zip 文件用作密钥提供程序(请参阅提供证书,用于使用 Amazon EMR 加密对传输中的数据进行加密了解凭证要求)。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } } } }'
下面的示例将说明以下情景:
-
传输中的数据加密已启用,静态数据加密已禁用。
-
使用了自定义密钥提供程序 (请参阅提供证书,用于使用 Amazon EMR 加密对传输中的数据进行加密了解凭证要求)。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } } } }'
静态数据加密选项示例
下面的示例将说明以下情景:
-
传输中的数据加密已禁用,而静态数据加密已启用。
-
SSE-S3 用于亚马逊 S3 加密。
-
本地磁盘加密 Amazon KMS 用作密钥提供程序。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
下面的示例将说明以下情景:
-
传输中数据加密已启用,并使用引用 Amazon S3 中带有PEM证书的 zip 文件。ARN
-
SSE-KMS 用于亚马逊 S3 加密。
-
本地磁盘加密 Amazon KMS 用作密钥提供程序。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
下面的示例将说明以下情景:
-
传输中数据加密已启用,并在 Amazon S3 中引用带有PEM证书的 zip 文件。
-
CSE-KMS 用于亚马逊 S3 加密。
-
本地磁盘加密使用其引用的自定义密钥提供程序ARN。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'
下面的示例将说明以下情景:
-
利用自定义密钥提供程序启用了传输中的数据加密。
-
CSE-自定义用于存储 Amazon S3 数据。
-
本地磁盘加密使用了自定义密钥提供程序。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": "true", "EnableAtRestEncryption": "true", "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'
下面的示例将说明以下情景:
-
传输中的数据加密已禁用,而静态数据加密已启用。
-
使用 SSE-启用 Amazon S3 加密KMS。
-
使用多个 Amazon KMS 密钥,每个 S3 存储桶一个,加密例外适用于这些单独的 S3 存储桶。
-
本地磁盘加密已禁用。
aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides": [ { "BucketName": "amzn-s3-demo-bucket1", "EncryptionMode": "SSE-S3" }, { "BucketName": "amzn-s3-demo-bucket2", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "amzn-s3-demo-bucket3", "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true } }'
下面的示例将说明以下情景:
-
传输中的数据加密已禁用,而静态数据加密已启用。
-
使用 SSE-S3 启用 Amazon S3 加密,本地磁盘加密处于禁用状态。
aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" } } } }'
下面的示例将说明以下情景:
-
传输中的数据加密已禁用,而静态数据加密已启用。
-
使用 Amazon KMS 作为密钥提供程序启用本地磁盘加密,并禁用 Amazon S3 加密。
aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
下面的示例将说明以下情景:
-
传输中的数据加密已禁用,而静态数据加密已启用。
-
使用 Amazon KMS 作为密钥提供程序启用本地磁盘加密,并禁用 Amazon S3 加密。
-
EBS加密已启用。
aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EnableEbsEncryption": true, "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
下面的示例将说明以下情景:
SSE-EMR-WAL 用于EMRWAL加密
aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'
如果要启用相关加密,EnableInTransitEncryption
和 EnableAtRestEncryption
仍可能为 true。
下面的示例将说明以下情景:
SSE-KMS-WAL 用于EMRWAL加密
服务器端加密 Amazon Key Management Service 用作密钥提供程序
aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ "AwsKmsKey":"arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'
如果要启用相关加密,EnableInTransitEncryption
和 EnableAtRestEncryption
仍可能为 true。
JSON加密设置参考
下表列出了加密设置的JSON参数,并描述了每个参数的可接受值。
参数 | 描述 |
---|---|
"EnableInTransitEncryption" :
true | false |
指定 true 可启用传输中加密,指定 false 则禁用。如果省略,则假定是 false ,传输中加密禁用。 |
"EnableAtRestEncryption": true |
false |
指定 true 可启用静态加密,指定 false 则禁用。如果省略,则假定是 false ,静态加密禁用。 |
传输中加密参数 | |
"InTransitEncryptionConfiguration" : |
指定当 EnableInTransitEncryption 为 true 时用于配置传输中加密的值的集合。 |
"CertificateProviderType": "PEM" |
"Custom" |
指定是使用通过压缩文件引用的 PEM 证书还是使用 Custom 证书提供程序。如果PEM 已指定,则S3Object 必须引用包含证书的 zip 文件在 Amazon S3 中的位置。如果指定了 “自定义”,则S3Object 必须引用JAR文件在 Amazon S3 中的位置,然后是CertificateProviderClass 条目。 |
"S3Object" :
" |
" |
如果指定,则在 Amazon S3 中PEM 为 zip 文件提供位置,如果已指定,则Custom 为JAR文件提供位置。格式可以是路径(例如,s3://MyConfig/artifacts/CertFiles.zip )或ARN(例如,arn:aws:s3:::Code/MyCertProvider.jar) 。如果指定 zip 文件,则其中必须包含名为 privateKey.pem 和 certificateChain.pem 的文件。名为 trustedCertificates.pem 的文件是可选的。 |
"CertificateProviderClass" :
" |
仅当Custom 为指定时才需要CertificateProviderType 。 指定在实现TLSArtifactsProvider接口JAR的文件中声明的完整类名。例如,com.mycompany.MyCertProvider 。 |
静态加密参数 | |
"AtRestEncryptionConfiguration" : |
指定静态加密值的集合true ,包括 Amazon S3 加密和本地磁盘加密。EnableAtRestEncryption |
亚马逊 S3 加密参数 | |
"S3EncryptionConfiguration" : |
指定使用亚马逊EMR文件系统 (EMRFS) 对 Amazon S3 进行加密时使用的值集合。 |
"EncryptionMode" : "SSE-S3" |
"SSE-KMS" | "CSE-KMS" |
"CSE-Custom" |
指定要使用的 Amazon S3 加密类型。如果SSE-S3 已指定,则不需要其他 Amazon S3 加密值。如果指定了SSE-KMS 或,CSE-KMS 则 Amazon KMS key ARN必须将值指定为AwsKmsKey 值。如果指定 CSE-Custom ,则必需指定 S3Object 和 EncryptionKeyProviderClass 值。 |
"AwsKmsKey" :
" |
仅当为指定了SSE-KMS 或CSE-KMS 时才需要EncryptionMode 。 必须是密钥ARN的完整指定值(例如,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 )。 |
"S3Object" :
" |
仅在CSE-Custom 为指定时才需要CertificateProviderType 。 提供JAR文件在 Amazon S3 中的位置。格式可以是路径(例如,s3://MyConfig/artifacts/MyKeyProvider.jar )或ARN(例如,arn:aws:s3:::Code/MyKeyProvider.jar) 。 |
"EncryptionKeyProviderClass" :
" |
仅在CSE-Custom 为指定时才需要EncryptionMode 。 指定在实现 EncryptionMaterialsProvider接口的应用程序中声明的类的完整类名;例如 。 |
本地磁盘加密参数 | |
"LocalDiskEncryptionConfiguration" |
指定要用于本地磁盘加密的密钥提供程序和相应的值。 |
"EnableEbsEncryption": |
指定true 启用EBS加密。 EBS加密会对EBS根设备卷和连接的存储卷进行加密。要使用EBS加密,必须指定AwsKms 为EncryptionKeyProviderType 。 |
"EncryptionKeyProviderType": "AwsKms" |
"Custom" |
指定密钥提供程序。如果AwsKms 已指定,则ARN必须将KMS键指定为AwsKmsKey 值。如果指定 Custom ,则必需指定 S3Object 和 EncryptionKeyProviderClass 值。 |
"AwsKmsKey :
" |
仅在AwsKms 为指定时才需要Type 。 必须是密钥ARN的完整指定值(例如,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123 )。 |
"S3Object" :
" |
仅在CSE-Custom 为指定时才需要CertificateProviderType 。 提供JAR文件在 Amazon S3 中的位置。格式可以是路径(例如,s3://MyConfig/artifacts/MyKeyProvider.jar )或ARN(例如,arn:aws:s3:::Code/MyKeyProvider.jar) 。 |
|
仅在Custom 为指定时才需要Type 。 指定在实现 EncryptionMaterialsProvider接口的应用程序中声明的类的完整类名;例如 。 |
EMRWAL加密参数 | |
"EMRWALEncryptionConfiguration"
|
指定EMRWAL加密值。 |
"AwsKmsKey"
|
指定CMK密钥 ID Arn。 |
配置 Kerberos 身份验证
包含 Kerberos 设置的安全配置只能由使用 Kerberos 属性创建的集群使用,否则会发生错误。有关更多信息,请参阅 使用 Kerberos 通过亚马逊进行身份验证 EMR。Kerberos 仅在亚马逊EMR发行版 5.10.0 及更高版本中可用。
使用控制台指定 Kerberos 设置
根据以下准则选择 Kerberos authentication (Kerberos 身份验证) 下的选项。
参数 | 描述 | ||
---|---|---|---|
Kerberos |
指定为使用此安全配置的集群启用 Kerberos。如果集群使用此安全配置,则集群还必须指定 Kerberos 设置,否则会发生错误。 |
||
Provider |
集群专用 KDC |
指定 Amazon KDC 在使用此安全配置的所有集群的主节点上EMR创建。创建集群时,您需要指定领域名称和KDC管理员密码。 如果需要,您可以KDC从其他集群中引用它。使用不同的安全配置创建这些集群,指定外部集群KDC,然后使用您为集群专KDC用的领域名称和KDC管理员密码。 |
|
外部 KDC |
仅适用于亚马逊 EMR 5.20.0 及更高版本。指定使用此安全配置的群集使用群集外部的KDC服务器对 Kerberos 主体进行身份验证。未KDC在集群上创建 A。创建集群时,您需要为外部集群指定领域名称和KDC管理员密码KDC。 |
||
票证生命周期 |
可选。指定由颁发的 Kerberos 票证在使用此安全配置的集群上有效的期限。KDC 出于安全考虑,限制票证生命周期。集群应用程序和服务在过期后自动续订票证。SSH使用 Kerberos 凭据连接到集群的用户需要在票证到期后 |
||
跨领域信任 |
指定使用此安全配置的集群KDC上的集群专用集群与其他 Kerberos 领域KDC中的集群之间的跨领域信任。 来自另一个领域的委托人(通常是用户)将通过使用此配置的集群进行身份验证。需要在其它 Kerberos 领域中进行其它配置。有关更多信息,请参阅教程:配置与 Active Directory 域的跨领域信任。 |
||
跨领域信任属性 |
领域 |
指定信任关系中其它领域的 Kerberos 领域名称。按照惯例,Kerberos 领域名称与域名相同,但全部使用大写字母。 |
|
域 |
指定信任关系中其它领域的域名。 |
||
管理服务器 |
指定信任关系其他领域中管理服务器的完全限定域名 (FQDN) 或 IP 地址。管理服务器和KDC服务器通常在同一台计算机上运行FQDN,但通过不同的端口进行通信。 如果未指定端口,则使用端口 749,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
||
KDC服务器 |
指定信任关系其他领域中KDC服务器的完全限定域名 (FQDN) 或 IP 地址。KDC服务器和管理服务器通常在同一台计算机上运行,使用相同的端口FQDN,但使用不同的端口。 如果未指定端口,则使用端口 88,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
||
外部 KDC |
指定集群KDC使用外部群集。 |
||
外部KDC属性 |
管理服务器 |
指定外部管理服务器的完全限定域名 (FQDN) 或 IP 地址。管理服务器和KDC服务器通常在同一台计算机上运行FQDN,但通过不同的端口进行通信。 如果未指定端口,则使用端口 749,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
|
KDC服务器 |
指定外部KDC服务器的完全限定域名 (FQDN)。KDC服务器和管理服务器通常在同一台计算机上运行,使用相同的端口FQDN,但使用不同的端口。 如果未指定端口,则使用端口 88,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
||
Active Directory 集成 |
指定 Kerberos 委托人身份验证与 Microsoft Active Directory 域集成。 |
||
Active Directory 集成属性 |
Active Directory 领域 |
指定 Active Directory 域的 Kerberos 领域名称。按照惯例,Kerberos 领域名称通常与域名相同,但全部使用大写字母。 |
|
Active Directory 域 |
指定 Active Directory 域名。 |
||
Active Directory 服务器 |
指定 Microsoft Active Directory 域控制器的完全限定域名 (FQDN)。 |
使用指定 Kerberos 设置 Amazon CLI
下表显示了安全配置中 Kerberos 设置的JSON参数。有关示例配置,请参阅配置示例。
参数 | 描述 | |||||
---|---|---|---|---|---|---|
|
对于 Kerberos 是必需的。指定身份验证配置是此安全配置的一部分。 |
|||||
|
|
对于 Kerberos 是必需的。指定 Kerberos 配置属性。 |
||||
|
|
|
||||
"ClusterDedicatedKdcConfiguration": { |
在指定 |
|||||
|
可选。指定由颁发的 Kerberos 票证在使用此安全配置的集群上有效的期限。KDC 出于安全考虑,限制票证生命周期。集群应用程序和服务在过期后自动续订票证。SSH使用 Kerberos 凭据连接到集群的用户需要在票证到期后 |
|||||
|
指定使用此安全配置的集群KDC上的集群专用集群与其他 Kerberos 领域KDC中的集群之间的跨领域信任。 来自另一个领域的委托人(通常是用户)将通过使用此配置的集群进行身份验证。需要在其它 Kerberos 领域中进行其它配置。有关更多信息,请参阅教程:配置与 Active Directory 域的跨领域信任。 |
|||||
|
指定信任关系中其它领域的 Kerberos 领域名称。按照惯例,Kerberos 领域名称与域名相同,但全部使用大写字母。 |
|||||
|
指定信任关系中其它领域的域名。 |
|||||
|
指定信任关系其他领域中管理服务器的完全限定域名 (FQDN) 或 IP 地址。管理服务器和KDC服务器通常在同一台计算机上运行FQDN,但通过不同的端口进行通信。 如果未指定端口,则使用端口 749,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
|||||
|
指定信任关系其他领域中KDC服务器的完全限定域名 (FQDN) 或 IP 地址。KDC服务器和管理服务器通常在同一台计算机上运行,使用相同的端口FQDN,但使用不同的端口。 如果未指定端口,则使用端口 88,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
|||||
|
||||||
|
||||||
"ExternalKdcConfiguration": { |
在指定 |
|||||
|
可选。指定由颁发的 Kerberos 票证在使用此安全配置的集群上有效的期限。KDC 出于安全考虑,限制票证生命周期。集群应用程序和服务在过期后自动续订票证。SSH使用 Kerberos 凭据连接到集群的用户需要在票证到期后 |
|||||
|
指定引用单个KDC服务器。 |
|||||
"AdminServer": " |
指定外部管理服务器的完全限定域名 (FQDN) 或 IP 地址。管理服务器和KDC服务器通常在同一台计算机上运行FQDN,但通过不同的端口进行通信。 如果未指定端口,则使用端口 749,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
|||||
"KdcServer": " |
指定外部KDC服务器的完全限定域名 (FQDN)。KDC服务器和管理服务器通常在同一台计算机上运行,使用相同的端口FQDN,但使用不同的端口。 如果未指定端口,则使用端口 88,这是 Kerberos 默认值。另外,您还可以指定端口 (例如, |
|||||
|
指定 Kerberos 委托人身份验证与 Microsoft Active Directory 域集成。 |
|||||
|
|
指定 Active Directory 域的 Kerberos 领域名称。按照惯例,Kerberos 领域名称通常与域名相同,但全部使用大写字母。 |
||||
|
指定 Active Directory 域名。 |
|||||
|
指定 Microsoft Active Directory 域控制器的完全限定域名 (FQDN)。 |
|||||
|
||||||
|
||||||
|
||||||
|
为向 Amazon S3 发出的EMRFS请求配置IAM角色
IAM的角色EMRFS允许您为 Amazon S3 中的EMRFS数据提供不同的权限。您可以创建角色映射,来指定在访问请求包含您指定的标识符时用来获得权限的 IAM 角色。标识符可以是 Hadoop 用户或角色,或 Amazon S3 前缀。
有关更多信息,请参阅 为向 Amazon S3 发出的EMRFS请求配置IAM角色。
为EMRFS使用指定IAM角色 Amazon CLI
以下是在安全配置中为其指定自定义IAM角色的EMRFS示例JSON片段。它演示了三种不同标识符类型的角色映射,后跟参数引用。
{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "
arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1
", "IdentifierType": "User", "Identifiers": [ "user1
" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_demo_s3_buckets
", "IdentifierType": "Prefix", "Identifiers": [ "s3://amzn-s3-demo-bucket1/","s3://amzn-s3-demo-bucket2/
" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup
", "IdentifierType": "Group", "Identifiers": [ "AdminGroup
" ] }] } } }
参数 | 描述 |
---|---|
|
必需。 |
|
必需。包含角色映射。 |
|
必需。包含一个或多个角色映射定义。按照角色映射的先后顺序对角色映射进行评估。如果在 Amazon S3 中EMRFS调用数据时角色映射评估为真,则不会再评估角色映射,EMRFS而是使用指定的IAM角色进行请求。角色映射由以下必需参数组成: |
|
以格式指定IAM角色的ARN标识符 |
|
可以是以下值之一:
|
|
指定一个或多个相应标识符类型的标识符。用逗号分隔多个标识符,不含空格。 |
配置对 Amazon EC2 实例的元数据服务请求
实例元数据 是有关您的实例的数据,可以用来配置或管理正在运行的实例。您可以使用以下其中一种方法,从正在运行的实例中访问实例元数据:
-
实例元数据服务版本 1 (IMDSv1)-一种请求/响应方法
-
实例元数据服务版本 2 (IMDSv2)-一种面向会话的方法
虽然亚马逊同时EC2支持IMDSv1和IMDSv2,但亚马逊IMDSv2在亚马逊 EMR 5.23.1、5.27.1、5.32 或更高版本以及 6.2 或更高版本中都EMR支持。在这些版本中,Amazon EMR 组件IMDSv2用于所有IMDS调用。对于应用程序代码中的IMDS调用,您可以同时使用IMDSv1和IMDSv2,或者将配置IMDS为仅IMDSv2用于提高安全性。在指定必须使用 IMDSv2 时,IMDSv1 不再起作用。
有关更多信息,请参阅 Amazon EC2 用户指南中的配置实例元数据服务。
注意
在早期的 Amazon EMR 5.x 或 6.x 版本中,关闭IMDSv1会导致集群启动失败,因为亚马逊EMR组件IMDSv1用于所有IMDS调用。关闭时IMDSv1,请确保使用的所有自定义软件都已更新IMDSv1为。IMDSv2
指定实例元数据服务配置,使用 Amazon CLI。
以下是在安全配置中指定 Amazon EC2 实例元数据服务 (IMDS) 的示例JSON片段。使用自定义安全配置是可选的。
{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
参数 | 描述 |
---|---|
|
如果您未在安全配置IMDS中指定并使用要求的 Amazon EMR 版本IMDSv1,Amazon 将EMR默认使用IMDSv1作为最低实例元数据服务版本。如果要使用自己的配置,则需要以下两个参数。 |
|
必需。指定 |
|
必需。实例元数据请求所需的HTTPPUT响应跳跃限制。该数字越大,实例元数据请求传播得越远。默认值: |
使用控制台指定实例元数据服务配置
当您从 Amazon EMR 控制台启动集群时,您可以IMDS为其配置使用。
要配置使用控制台的IMDS方式,请执行以下操作:
-
在安全配置页面上创建新的安全配置时,选择EC2实例元数据服务设置下的配置EC2实例元数据服务。只有亚马逊 EMR 5.23.1、5.27.1、5.32 或更高版本以及 6.2 或更高版本支持此配置。
-
对于 Minimum Instance Metadata Service Version (最低实例元数据服务版本) 选项,请选择以下任一项:
-
如果您@@ 只想在此集群IMDSv2上允许IMDSv2,请关闭IMDSv1并仅允许。请参阅《Amazon EC2 用户指南》中的过渡到使用实例元数据服务版本 2。
-
如果要在此@@ 集群IMDSv2上允许IMDSv1和以会话为导向,则允许在集群IMDSv2上同时使用IMDSv1和。
-
-
对于IMDSv2,您还可以通过将HTTP输入响应跳数限制设置为介于和之间的
1
整数,为元数据令牌配置允许的网络跳跃数。64
有关更多信息,请参阅 Amazon EC2 用户指南中的配置实例元数据服务。
请参阅 Amazon EC2 用户指南中的配置实例详细信息和配置实例元数据服务。