建立安全組態 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立安全組態

本主題涵蓋使用 Amazon EMR主控台和 建立安全組態的一般程序 AWS CLI,後面接著包含 加密、身分驗證和IAM角色的參數參考EMRFS。如需這些功能的詳細資訊,請參閱下列主題:

使用主控台建立安全組態
  1. https://console.aws.amazon.com/emr 開啟 Amazon EMR主控台。

  2. 在導覽窗格中,選擇 Security Configurations (安全組態)Create security configuration (建立安全組態)

  3. 輸入安全組態的 Name (名稱)

  4. 選擇以下區段中所述的加密身分驗證,然後選擇建立

使用 建立安全組態 AWS CLI
  • 請使用 create-security-configuration 指令,如下列範例所示。

    • 用於 SecConfigName,指定安全組態的名稱。這是您在建立使用此安全組態的叢集時所指定的名稱。

    • 對於 SecConfigDef,指定內嵌JSON結構或本機JSON檔案的路徑,例如 file://MySecConfig.json。這些JSON參數定義加密 IAMEMRFS存取 Amazon S3 的角色身分驗證的選項,如以下各節所述。

    aws emr create-security-configuration --name "SecConfigName" --security-configuration SecConfigDef

設定資料加密

在安全組態中設定加密前,請建立用於加密的金鑰和憑證。如需詳細資訊,請參閱 提供使用 Amazon 加密靜態資料的金鑰 EMR提供使用 Amazon 加密來EMR加密傳輸中資料的憑證

您在建立安全組態時指定兩組加密選項:靜態資料加密和傳輸中資料加密。靜態資料加密的選項包括具有 EMRFS和本機磁碟加密的 Amazon S3。傳輸中加密選項可為支援 Transport Layer Security () 的特定應用程式啟用開放原始碼加密功能TLS。靜態和傳輸中的選項可同時啟用或分別啟用。如需詳細資訊,請參閱加密靜態和傳輸中的資料

注意

當您使用 時 AWS KMS,儲存和使用加密金鑰會收取費用。如需詳細資訊,請參閱 AWS KMS 定價

使用主控台指定加密選項

Encryption (加密) 中,根據下列的準則來選擇選項。

  • 選擇 At rest encryption (靜態加密) 下的選項來加密存放於檔案系統中的資料。

    您可以選擇加密 Amazon S3、本機磁碟或兩者的資料。

  • S3 資料加密 下,針對加密模式 ,選擇一個值來判斷 Amazon 如何使用 EMR加密 Amazon S3 資料EMRFS。

    您接下來要執行的動作取決於您選擇的加密模式:

  • Local disk encryption (本機磁碟加密) 下,選擇 Key provider type (金鑰提供者類型) 的值。

    • AWS KMS key

      選取此選項以指定 AWS KMS key。針對 AWS KMS key,選取一個金鑰。金鑰必須與EMR叢集位於相同的區域中。如需金鑰需求的詳細資訊,請參閱「使用 AWS KMS keys 進行加密」。

      EBS 加密

      當您指定 AWS KMS 做為金鑰提供者時,您可以啟用EBS加密,以加密EBS根裝置和儲存磁碟區。若要啟用此類選項,您必須授予EMR_DefaultRole具有許可的 Amazon EMR服務角色,才能使用您指定的 AWS KMS key 。如需金鑰需求的詳細資訊,請參閱「為KMS金鑰提供額外的許可以啟用EBS加密」。

    • Custom (自訂)

      選擇此選項來指定自訂金鑰提供者。針對 S3 物件 ,輸入自訂金鑰提供者JAR檔案的 Amazon S3 或 Amazon S3 ARN中的位置。針對金鑰提供者類別 ,輸入在實作 EncryptionMaterialsProvider 介面的應用程式中宣告之類別的完整類別名稱。您在此提供的類別名稱必須與 CSE-Custom 提供的類別名稱不同。

  • 選擇傳輸中加密,以啟用傳輸中資料的開放原始碼TLS加密功能。根據下列的準則來選擇 Certificate provider type (憑證提供者類型)

    • PEM

      選取此選項,以使用您在 zip PEM 檔案中提供的檔案。zip 檔案中需要兩個成品:privateKey.pem 和 certificateChain.pem。第三個檔案 trustedCertificates.pem 是選用的。如需詳細資訊,請參閱 提供使用 Amazon 加密來EMR加密傳輸中資料的憑證。對於 S3 物件 ,指定 zip 檔案欄位的 Amazon S3 或 Amazon S3 ARN中的位置。

    • Custom (自訂)

      選取此選項以指定自訂憑證提供者,然後在 S3 物件 中輸入自訂憑證提供者JAR檔案ARN的 Amazon S3 或 Amazon S3 中的位置。針對金鑰提供者類別 ,輸入在實作TLSArtifactsProvider介面的應用程式中宣告之類別的完整類別名稱。

使用 指定加密選項 AWS CLI

以下各節使用範例案例來說明不同組態和金鑰提供者--security-configurationJSON的格式良好,然後是JSON參數和適當值的參考。

傳輸中資料加密選項範例

以下範例說明以下案例:

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } } } }'

以下範例說明以下案例:

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 用於 Amazon S3 加密。

  • 本機磁碟加密使用 AWS 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 用於 Amazon S3 加密。

  • 本機磁碟加密使用 AWS 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 用於 Amazon 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" } } } }'

以下範例說明以下案例:

  • 傳輸中資料加密停用而靜態資料加密啟用。

  • Amazon S3 加密使用 SSE- 啟用KMS。

  • 使用多個 AWS 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": "sse-s3-bucket-name", "EncryptionMode": "SSE-S3" }, { "BucketName": "cse-kms-bucket-name", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "sse-kms-bucket-name", "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true } }'

以下範例說明以下案例:

  • 傳輸中資料加密停用而靜態資料加密啟用。

  • Amazon S3 加密會使用 SSE-S3 啟用,並停用本機磁碟加密。

aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" } } } }'

以下範例說明以下案例:

  • 傳輸中資料加密停用而靜態資料加密啟用。

  • 使用 啟用本機磁碟加密 AWS 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" } } } }'

以下範例說明以下案例:

  • 傳輸中資料加密停用而靜態資料加密啟用。

  • 使用 啟用本機磁碟加密 AWS 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加密

  • 伺服器端加密使用 AWS 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" : EnableInTransitEncryptiontrue 時,指定用於設定傳輸中加密的值集合。
"CertificateProviderType": "PEM" | "Custom" 指定是否要使用參考壓縮檔案的 PEM 憑證或 Custom 憑證提供者。如果 PEM 已指定,則 S3Object 必須是包含憑證之 zip 檔案的 Amazon S3 中位置的參考。如果指定自訂, S3Object 必須是JAR檔案 Amazon S3 中位置的參考,後面接著CertificateProviderClass項目。
"S3Object" : "ZipLocation" | "JarLocation" PEM 指定時,將 Amazon S3 中的位置提供給 zip 檔案,或Custom指定時提供給JAR檔案。格式可以是路徑 (例如 s3://MyConfig/artifacts/CertFiles.zip) 或 ARN(例如 arn:aws:s3:::Code/MyCertProvider.jar))。如果指定 zip 檔案,其必須包含命名方式與 privateKey.pemcertificateChain.pem 完全相同的檔案。命名為 trustedCertificates.pem 的檔案為選用。
"CertificateProviderClass" : "MyClassID" 只有在為 指定 Custom 時才需要CertificateProviderTypeMyClassID 指定在 JAR 檔案中宣告的完整類別名稱,以實作 TLSArtifactsProvider 介面。例如:com.mycompany.MyCertProvider
靜態加密參數
"AtRestEncryptionConfiguration" : 指定當 EnableAtRestEncryption為 時的靜態加密值集合true,包括 Amazon S3 加密和本機磁碟加密。
Amazon S3 加密參數
"S3EncryptionConfiguration" : 指定使用 Amazon File System () 進行 Amazon S3 加密時所使用的值集合EMRFS。 EMR
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" 指定要使用的 Amazon S3 加密類型。如果已指定 SSE-S3 ,則不需要其他 Amazon S3 加密值。如果指定 SSE-KMSCSE-KMS ,則必須指定 AWS KMS key ARN作為AwsKmsKey值。如果指定 CSE-Custom,則必須指定 S3ObjectEncryptionKeyProviderClass 的值。
"AwsKmsKey" : "MyKeyARN" 只有在為 CSE-KMS 指定 SSE-KMS或 時才需要EncryptionModeMyKeyARN 必須是完全指定ARN給金鑰 (例如 arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012)。
"S3Object" : "JarLocation" 只有在 CSE-Custom指定 時才需要CertificateProviderType。 會將 Amazon S3 中的位置JarLocation提供給 JAR 檔案。格式可以是路徑 (例如 s3://MyConfig/artifacts/MyKeyProvider.jar) 或 ARN(例如 arn:aws:s3:::Code/MyKeyProvider.jar))。
"EncryptionKeyProviderClass" : "MyS3KeyClassID" 只有在 CSE-Custom指定 時才需要EncryptionModeMyS3KeyClassID 指定在實作 EncryptionMaterialsProvider介面的應用程式中宣告之類別的完整類別名稱;例如 com.mycompany.MyS3KeyProvider
本機磁碟加密參數
"LocalDiskEncryptionConfiguration" 指定用於本機磁碟加密的金鑰提供者和對應的值。
"EnableEbsEncryption": true | false 指定 true以啟用EBS加密。EBS 加密會加密EBS根裝置磁碟區和連接的儲存磁碟區。若要使用EBS加密,您必須指定 AwsKmsEncryptionKeyProviderType
"EncryptionKeyProviderType": "AwsKms" | "Custom" 指定金鑰提供者。如果已指定 AwsKms ,ARN則必須將KMS金鑰指定為 AwsKmsKey值。如果指定 Custom,則必須指定 S3ObjectEncryptionKeyProviderClass 的值。
"AwsKmsKey : "MyKeyARN" 只有在為 指定 AwsKms 時才需要TypeMyKeyARN 必須是完全指定ARN給金鑰 (例如 arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123)。
"S3Object" : "JarLocation" 只有在 CSE-Custom指定 時才需要CertificateProviderType。 會將 Amazon S3 中的位置JarLocation提供給 JAR 檔案。格式可以是路徑 (例如 s3://MyConfig/artifacts/MyKeyProvider.jar) 或 ARN(例如 arn:aws:s3:::Code/MyKeyProvider.jar))。

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

只有在為 指定 Custom 時才需要TypeMyLocalDiskKeyClassID 指定在實作 EncryptionMaterialsProvider介面的應用程式中宣告之類別的完整類別名稱;例如 com.mycompany.MyLocalDiskKeyProvider
EMR WAL 加密參數
"EMRWALEncryptionConfiguration" 指定EMRWAL加密的值。
"AwsKmsKey" 指定CMK金鑰 ID Arn。

設定 Kerberos 身分驗證

Kerberos 設定的安全組態只能由以 Kerberos 屬性建立的叢集使用,否則會發生錯誤。如需詳細資訊,請參閱使用 Kerberos 與 Amazon 進行身分驗證 EMR。Kerberos 僅適用於 Amazon EMR5.10.0 版及更新版本。

使用主控台指定 Kerberos 設定

根據下列的準則,在 Kerberos authentication (Kerberos 身分驗證) 中選擇選項。

參數 描述

Kerberos

指定已為使用此安全組態的叢集啟用 Kerberos。如果叢集使用此安全組態,叢集也必須指定 Kerberos 設定,否則會發生錯誤。

供應商

叢集專用 KDC

指定 Amazon 在使用此安全組態的任何叢集的主要節點KDC上EMR建立 。您可以在建立叢集時指定領域名稱和KDC管理員密碼。

如有需要,您可以從KDC其他叢集中參考。使用不同的安全組態建立這些叢集、指定外部 KDC,並使用您為叢集專用 指定的領域名稱和KDC管理員密碼KDC。

外部 KDC

僅適用於 Amazon EMR 5.20.0 及更新版本。指定使用此安全組態的叢集使用叢集外部的KDC伺服器來驗證 Kerberos 主體。KDC 未在叢集上建立 。建立叢集時,您可以指定外部 的領域名稱和KDC管理員密碼KDC。

票證生命週期

選用。指定 發行的 Kerberos 票證在使用此安全組態的叢集上KDC有效的期間。

出於安全原因,票證生命週期是有限的。叢集應用程式和服務會在到期後自動續約票證。SSH 使用 Kerberos 憑證連線至叢集的使用者,需要在票證過期後kinit從主要節點命令列執行續約。

跨領域信任

指定叢集KDC專用於使用此安全組態的叢集與不同 Kerberos 領域KDC中的 之間的跨領域信任。

來自其他領域的主體 (通常是使用者) 會對使用此組態的叢集進行身分驗證。需要其他 Kerberos 領域中的其他組態。如需詳細資訊,請參閱教學課程:使用 Active Directory 域設定跨領域信任

跨領域信任屬性

領域

指定信任關係中另一個領域的 Kerberos 領域名稱。根據慣例,Kerberos 領域名稱與域名稱相同,但都是大寫字母。

網域

指定信任關係中另一個領域的域名稱。

管理伺服器

在信任關係的其他領域中指定管理伺服器的完整網域名稱 (FQDN) 或 IP 地址。管理伺服器和KDC伺服器通常在具有相同 的同一部電腦上執行FQDN,但在不同的連接埠上進行通訊。

如果未指定連接埠,則會使用連接埠 749 (Kerberos 預設值)。或者,您可以指定連接埠 (例如 domain.example.com:749)。

KDC 伺服器

指定信任關係另一個領域中KDC伺服器的完整網域名稱 (FQDN) 或 IP 地址。KDC 伺服器和管理員伺服器通常在具有相同 的相同電腦上執行FQDN,但使用不同的連接埠。

如果未指定連接埠,則會使用連接埠 88,這是 Kerberos 預設值。或者,您可以指定連接埠 (例如 domain.example.com:88)。

外部 KDC

指定叢集KDC使用外部叢集。

外部KDC屬性

管理伺服器

指定外部管理員伺服器的完整網域名稱 (FQDN) 或 IP 地址。管理伺服器和KDC伺服器通常在具有相同 的同一部電腦上執行FQDN,但在不同的連接埠上進行通訊。

如果未指定連接埠,則會使用連接埠 749 (Kerberos 預設值)。或者,您可以指定連接埠 (例如 domain.example.com:749)。

KDC 伺服器

指定外部KDC伺服器的完整網域名稱 (FQDN)。KDC 伺服器和管理員伺服器通常在具有相同 的相同電腦上執行FQDN,但使用不同的連接埠。

如果未指定連接埠,則會使用連接埠 88,這是 Kerberos 預設值。或者,您可以指定連接埠 (例如 domain.example.com:88)。

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 設定 AWS CLI

下列參考資料表顯示安全組態中 Kerberos 設定的JSON參數。如需組態範例,請參閱組態範例

參數 描述

"AuthenticationConfiguration": {

針對 Kerberos 為必要。指定驗證組態是此安全組態的一部分。

"KerberosConfiguration": {

針對 Kerberos 為必要。指定 Kerberos 組態屬性。

"Provider": "ClusterDedicatedKdc",

"Provider: "ExternalKdc",

ClusterDedicatedKdc 指定 Amazon 在使用此安全組態的任何叢集的主要節點KDC上EMR建立 。您可以在建立叢集時指定領域名稱和KDC管理員密碼。如有需要,您可以從KDC其他叢集參考。使用不同的安全組態建立這些叢集、指定外部 KDC,並使用您在使用叢集專用 建立叢集時指定的領域名稱和KDC管理員密碼KDC。

ExternalKdc 指定叢集使用外部 KDC。Amazon EMR 不會在主要節點KDC上建立 。使用此安全組態的叢集必須指定外部 的領域名稱和KDC管理員密碼KDC。

"ClusterDedicatedKdcConfiguration": {

指定 ClusterDedicatedKdc 時為必要。

"TicketLifetimeInHours": 24,

選用。指定 發行的 Kerberos 票證在使用此安全組態的叢集上KDC有效的期間。

出於安全原因,票證生命週期是有限的。叢集應用程式和服務會在到期後自動續約票證。SSH 使用 Kerberos 憑證連線至叢集的使用者,需要在票證過期後kinit從主要節點命令列執行續約。

"CrossRealmTrustConfiguration": {

指定叢集KDC專用於使用此安全組態的叢集與不同 Kerberos 領域KDC中的 之間的跨領域信任。

來自其他領域的主體 (通常是使用者) 會對使用此組態的叢集進行身分驗證。需要其他 Kerberos 領域中的其他組態。如需詳細資訊,請參閱教學課程:使用 Active Directory 域設定跨領域信任

"Realm": "KDC2.COM",

指定信任關係中另一個領域的 Kerberos 領域名稱。根據慣例,Kerberos 領域名稱與域名稱相同,但都是大寫字母。

"Domain": "kdc2.com",

指定信任關係中另一個領域的域名稱。

"AdminServer": "kdc.com:749",

在信任關係的其他領域中指定管理伺服器的完整網域名稱 (FQDN) 或 IP 地址。管理伺服器和KDC伺服器通常在具有相同 的同一部電腦上執行FQDN,但在不同的連接埠上進行通訊。

如果未指定連接埠,則會使用連接埠 749 (Kerberos 預設值)。或者,您可以指定連接埠 (例如 domain.example.com:749)。

"KdcServer": "kdc.com:88"

指定信任關係另一個領域中KDC伺服器的完整網域名稱 (FQDN) 或 IP 地址。KDC 伺服器和管理員伺服器通常在具有相同 的相同電腦上執行FQDN,但使用不同的連接埠。

如果未指定連接埠,則會使用連接埠 88,這是 Kerberos 預設值。或者,您可以指定連接埠 (例如 domain.example.com:88)。

}

}

"ExternalKdcConfiguration": {

指定 ExternalKdc 時為必要。

"TicketLifetimeInHours": 24,

選用。指定 發行的 Kerberos 票證在使用此安全組態的叢集上KDC有效的期間。

出於安全原因,票證生命週期是有限的。叢集應用程式和服務會在到期後自動續約票證。SSH 使用 Kerberos 憑證連線至叢集的使用者,需要在票證過期後kinit從主要節點命令列執行續約。

"KdcServerType": "Single",

指定參考單一KDC伺服器。 目前Single是唯一支援的值。

"AdminServer": "kdc.com:749",

指定外部管理員伺服器的完整網域名稱 (FQDN) 或 IP 地址。管理伺服器和KDC伺服器通常在具有相同 的同一部電腦上執行FQDN,但在不同的連接埠上進行通訊。

如果未指定連接埠,則會使用連接埠 749 (Kerberos 預設值)。或者,您可以指定連接埠 (例如 domain.example.com:749)。

"KdcServer": "kdc.com:88",

指定外部KDC伺服器的完整網域名稱 (FQDN)。KDC 伺服器和管理員伺服器通常在具有相同 的相同電腦上執行FQDN,但使用不同的連接埠。

如果未指定連接埠,則會使用連接埠 88,這是 Kerberos 預設值。或者,您可以指定連接埠 (例如 domain.example.com:88)。

"AdIntegrationConfiguration": {

指定 Kerberos 主體驗證與 Microsoft Active Directory 域整合。

"AdRealm": "AD.DOMAIN.COM",

指定 Active Directory 網域的 Kerberos 領域名稱。根據慣例,Kerberos 領域名稱通常與網域名稱相同,但都是大寫字母。

"AdDomain": "ad.domain.com"

指定 Active Directory 域名稱。

"AdServer": "ad.domain.com"

指定 Microsoft Active Directory 網域控制器的完整網域名稱 (FQDN)。

}

}

}

}

設定 Amazon S3 EMRFS請求IAM的角色

IAM 角色EMRFS可讓您為 Amazon S3 中的EMRFS資料提供不同的許可。您可以建立對應,指定當存取請求包含您指定的識別符時,用於許可IAM的角色。識別符可以是 Hadoop 使用者或角色,或 Amazon S3 字首。

如需詳細資訊,請參閱設定 Amazon S3 EMRFS請求IAM的角色

使用 指定IAM角色 EMRFS AWS CLI

以下是在安全組態EMRFS中指定 自訂IAM角色的範例程式碼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_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
參數 描述

"AuthorizationConfiguration":

必要。

"EmrFsConfiguration":

必要。包含角色映射。

  "RoleMappings":

必要。包含一或多個角色映射定義。角色映射以顯示的由上而下順序進行評估。如果角色映射評估 Amazon S3 中資料的EMRFS呼叫為 true,則不會評估其他角色映射,並針對請求EMRFS使用指定的IAM角色。角色映射包含下列必要參數:

   "Role":

以 格式指定IAM角色的ARN識別符 arn:aws:iam::account-id:role/role-name。如果對 Amazon S3 的EMRFS請求符合任何Identifiers指定的 ,這是 Amazon EMR擔任IAM的角色。 Amazon S3

   "IdentifierType":

可為下列其中之一:

  • "User" 指定識別符是一或多個 Hadoop 使用者,這些使用者可以是 Linux 帳戶使用者或 Kerberos 主體。當EMRFS請求源自於指定的使用者時,即會擔任IAM角色。

  • "Prefix" 指定此識別符為 Amazon S3 位置。IAM 角色會擔任,以呼叫具有指定字首的位置。例如,字首 s3://mybucket/ 符合 s3://mybucket/mydir s3://mybucket/yetanotherdir

  • "Group" 指定識別符是一或多個 Hadoop 群組。如果請求來自指定群組中的使用者,則會擔任IAM角色。

   "Identifiers":

指定適當識別符類型的一或多個識別符。以逗號分隔多個識別符,不含空格。

設定中繼資料服務請求至 Amazon EC2執行個體

執行個體中繼資料 是關於您執行個體的資料,您可以用來設定或管理執行中的執行個體。您可以使用以下其中一個方法,從執行中的執行個體存取執行個體中繼資料:

  • 執行個體中繼資料服務第 1 版 (IMDSv1) - 請求/回應方法

  • Instance Metadata Service 第 2 版 (IMDSv2) - 工作階段導向方法

雖然 Amazon 同時EC2支援 IMDSv1和 IMDSv2,但 Amazon EMRIMDSv2支援 Amazon EMR 5.23.1、5.27.1、5.32 或更新版本,以及 6.2 或更新版本。在這些版本中,Amazon EMR元件會IMDSv2用於所有IMDS通話。對於應用程式程式碼中的IMDS呼叫,您可以使用 IMDSv1和 IMDSv2,或IMDS將 設定為僅用於IMDSv2提高安全性。當您指定 IMDSv2 必須使用時, IMDSv1 將不再運作。

如需詳細資訊,請參閱 Amazon EC2使用者指南 中的設定執行個體中繼資料服務

注意

在舊版 Amazon EMR 5.x 或 6.x 版本中,當 Amazon EMR元件IMDSv1用於所有IMDS呼叫時,關閉IMDSv1會導致叢集啟動失敗。關閉 時IMDSv1,請確保使用的任何自訂軟體IMDSv1都已更新為 IMDSv2。

使用 AWS CLI指定執行個體中繼資料服務組態

以下是在安全組態中指定 Amazon EC2執行個體中繼資料服務 JSON (IMDS) 的範例程式碼片段。選用自訂安全組態。

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
參數 描述

"InstanceMetadataServiceConfiguration":

如果您未在安全組態IMDS中指定 並使用需要 的 Amazon EMR版本IMDSv1,Amazon 會EMR預設使用 IMDSv1作為最低執行個體中繼資料服務版本。如果您想要使用自己的組態,則需要下列兩個參數。

"MinimumInstanceMetadataServiceVersion":

必要。可指定為 12。允許 1IMDSv1和 的值IMDSv2。的值2僅允許 IMDSv2。

"HttpPutResponseHopLimit":

必要。執行個體中繼資料請求所需的HTTPPUT回應躍點限制。數字越大,可傳輸的執行個體中繼資料請求越多。預設:1。指定從 164 的整數。

使用主控台指定執行個體中繼資料服務組態

當您從 Amazon EMR主控台啟動叢集時,您可以IMDS為叢集設定 的使用。

若要IMDS使用主控台設定 的使用:
  1. 在安全組態頁面上建立新的安全組態時,請選取EC2執行個體中繼資料服務設定下的設定EC2執行個體中繼資料服務。只有 Amazon EMR 5.23.1、5.27.1、5.32 或更新版本,以及 6.2 或更新版本才支援此組態。

  2. 對於最低執行個體中繼資料服務版本選項,選取:

    • 如果只想要在此叢集IMDSv2上允許 ,請關閉IMDSv1並僅允許 IMDSv2。請參閱 Amazon 使用者指南 中的使用執行個體中繼資料服務第 2 版轉換至 EC2

    • 如果您想要在此叢集IMDSv2上允許 IMDSv1 和 工作階段導向,請在叢集 IMDSv2上同時允許 IMDSv1和 。

  3. 對於 IMDSv2,您也可以將HTTP放置回應躍點限制設定為介於 和 之間的整數,藉此設定中繼資料字符的允許網路躍點數量641

如需詳細資訊,請參閱 Amazon EC2使用者指南 中的設定執行個體中繼資料服務

請參閱 Amazon EC2使用者指南 中的設定執行個體詳細資訊設定執行個體中繼資料服務