セキュリティ設定を作成する - 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. 以下のセクションで説明するように、[Encryption] (暗号化) および [Authentication] (認証) のオプションを選択し、[Create] (作成) を選択します。

を使用してセキュリティ設定を作成するには AWS CLI
  • 次の例に示すように create-security-configuration コマンドを使用します。

    • [ SecConfigName、セキュリティ設定の名前を指定します。この名前は、セキュリティ設定を使用するクラスターを作成する際に指定します。

    • にはSecConfigDef、インラインJSON構造または などのローカルJSONファイルへのパスを指定しますfile://MySecConfig.json。JSON パラメータは、以下のセクションで説明するように、暗号化 IAMAmazon S3 EMRFS へのアクセスロール、および認証のオプションを定義します。

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

データ暗号化の設定

セキュリティ設定で暗号化を設定する前に、暗号化に使用するキーと証明書を作成します。詳細については、「Amazon で保管中のデータを暗号化するためのキーの提供 EMR」および「Amazon 暗号化を使用して転送中のデータをEMR暗号化するための証明書を提供する」を参照してください。

セキュリティ設定を作成する場合、保管時のデータ暗号化および転送時のデータ暗号化の 2 種類の暗号化オプションを指定します。保管時のデータ暗号化のオプションには、 を使用した Amazon S3 EMRFSとローカルディスク暗号化の両方が含まれます。転送時の暗号化オプションを使用すると、Transport Layer Security () をサポートする特定のアプリケーションのオープンソース暗号化機能が有効になりますTLS。保管時と転送時のオプションは、一緒にまたは個別に有効にできます。詳細については、「保管中と転送中のデータの暗号化」を参照してください。

注記

を使用する場合 AWS KMS、暗号化キーのストレージと使用には料金が適用されます。詳細については、「AWS KMS 料金」を参照してください。

コンソールを使用して暗号化オプションを指定する

次のガイドラインに従って、[暗号化] の下のオプションを選択します。

  • ファイルシステム内に保存されたデータを暗号化するには、[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ルートデバイスとストレージボリュームを暗号化できます。このようなオプションを有効にするには、 AWS KMS key 指定した を使用するEMR_DefaultRoleアクセス許可を Amazon EMRサービスロールに付与する必要があります。キーの要件の詳細については、KMS キーに追加のアクセス許可を付与してEBS暗号化を有効にするを参照してください。

    • カスタム

      カスタムキープロバイダーを指定するには、このオプションを選択します。S3 オブジェクト の場合は、カスタムキープロバイダーJARファイルの Amazon S3 ARNまたは Amazon S3 の場所を入力します。キープロバイダークラス には、 EncryptionMaterialsProvider インターフェイスを実装するアプリケーションで宣言されたクラスのフルクラス名を入力します。ここで指定するクラス名は、CSE-Custom に指定されたクラス名とは異なる必要があります。

  • 転送中の暗号化を選択して、転送中のデータのオープンソースTLS暗号化機能を有効にします。以下のガイドラインに従って [Certificate provider type (証明書プロバイダーのタイプ)] を選択します。

    • PEM

      zip PEM ファイル内で指定したファイルを使用するには、このオプションを選択します。zip ファイルには privateKey.pem と certificateChain.pem の 2 つのアーティファクトが必要です。3 番目のファイル trustedCertificates.pem はオプションです。詳細については、「Amazon 暗号化を使用して転送中のデータをEMR暗号化するための証明書を提供する」を参照してください。S3 オブジェクト の場合は、zip ファイルフィールドの Amazon S3 ARNまたは Amazon S3 の場所を指定します。

    • カスタム

      このオプションを選択してカスタム証明書プロバイダーを指定し、S3 オブジェクト の場合は、ARNカスタム証明書プロバイダーJARファイルの 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。

  • S3 バケットごとに 1 つずつ複数の AWS KMS キーが使用され、これらの個々の 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 を指定する場合、 は証明書を含む zip ファイルの Amazon S3 内の場所への参照S3Objectである必要があります。Custom を指定する場合、 はJARファイルの Amazon S3 内の場所への参照でなければならず、その後にCertificateProviderClassエントリが続くS3Object必要があります。
"S3Object" : "ZipLocation" | "JarLocation" が指定されている場合は zip ファイル、 PEM が指定されている場合はJARファイルに Amazon S3 の場所を提供しますCustom。形式は、パス ( などs3://MyConfig/artifacts/CertFiles.zip) または ARN ( など) ですarn:aws:s3:::Code/MyCertProvider.jar)。zip ファイルを指定した場合、privateKey.pemcertificateChain.pem という正確な名前のファイルを含める必要があります。trustedCertificates.pem という名前のファイルはオプションです。
"CertificateProviderClass" : "MyClassID" Custom に が指定されている場合のみ必要ですCertificateProviderType。 は、 TLSArtifactsProviderインターフェイスを実装する JAR ファイルで宣言されたフルクラス名MyClassIDを指定します。例えば、com.mycompany.MyCertProvider と指定します。
保管時の暗号化パラメータ
"AtRestEncryptionConfiguration" : EnableAtRestEncryption が の場合、Amazon S3 暗号化やローカルディスク暗号化などtrue、保管時の暗号化の値のコレクションを指定します。
Amazon S3 暗号化パラメータ
"S3EncryptionConfiguration" : Amazon EMR ファイルシステム () で Amazon S3 暗号化に使用される値のコレクションを指定しますEMRFS。
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" 使用する Amazon S3 暗号化のタイプを指定します。SSE-S3 を指定した場合、それ以上の Amazon S3 暗号化値は必要ありません。SSE-KMS または のいずれかCSE-KMSが指定されている場合は、 AWS KMS key ARNをAwsKmsKey値として指定する必要があります。CSE-Custom を指定した場合、S3ObjectEncryptionKeyProviderClass の値を指定する必要があります。
"AwsKmsKey" : "MyKeyARN" SSE-KMS または のいずれかCSE-KMSが に指定されている場合にのみ必要ですEncryptionMode。 はキーARNに完全に指定されているMyKeyARN必要があります (例: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012)。
"S3Object" : "JarLocation" CSE-Customが指定されている場合にのみ必要ですCertificateProviderTypeJarLocation は Amazon S3 の場所を JAR ファイルに提供します。形式は、パス ( などs3://MyConfig/artifacts/MyKeyProvider.jar) または ARN ( など) ですarn:aws:s3:::Code/MyKeyProvider.jar)
"EncryptionKeyProviderClass" : "MyS3KeyClassID" CSE-Custom が に指定されている場合にのみ必要ですEncryptionMode。 は、インターフェイスを実装 EncryptionMaterialsProviderするアプリケーションで宣言されたクラスのフルクラス名MyS3KeyClassIDを指定します。例えば、 ですcom.mycompany.MyS3KeyProvider
ローカルディスクの暗号化パラメータ
"LocalDiskEncryptionConfiguration" ローカルディスクの暗号化に使用するキープロバイダーと対応する値を指定します。
"EnableEbsEncryption": true | false EBS 暗号化を有効にするtrueには、 を指定します。EBS 暗号化は、EBSルートデバイスボリュームとアタッチされたストレージボリュームを暗号化します。EBS 暗号化を使用するには、 を AwsKmsとして指定する必要がありますEncryptionKeyProviderType
"EncryptionKeyProviderType": "AwsKms" | "Custom" キープロバイダーを指定します。AwsKms が指定されている場合、KMSキーをAwsKmsKey値として指定ARNする必要があります。Custom を指定した場合、S3ObjectEncryptionKeyProviderClass の値を指定する必要があります。
"AwsKmsKey : "MyKeyARN" AwsKmsが指定されている場合にのみ必要ですType。 はキーARNに完全に指定されているMyKeyARN必要があります (例: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123)。
"S3Object" : "JarLocation" CSE-Customが指定されている場合にのみ必要ですCertificateProviderTypeJarLocation は Amazon S3 の場所を JAR ファイルに提供します。形式は、パス ( などs3://MyConfig/artifacts/MyKeyProvider.jar) または ARN ( など) ですarn:aws:s3:::Code/MyKeyProvider.jar)

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Custom が に指定されている場合にのみ必要ですType。 は、インターフェイスを実装 EncryptionMaterialsProviderするアプリケーションで宣言されたクラスのフルクラス名MyLocalDiskKeyClassIDを指定します。例えば、 ですcom.mycompany.MyLocalDiskKeyProvider
EMR WAL 暗号化パラメータ
"EMRWALEncryptionConfiguration" EMR WAL 暗号化の値を指定します。
"AwsKmsKey" CMK Key Id Arn を指定します。

Kerberos 認証の設定

Kerberos 設定を使用したセキュリティ設定は、Kerberos 属性を使用して作成されているクラスターでのみ使用できます。それ以外の場合はエラーが発生します。詳細については、「Amazon での認証に Kerberos を使用する EMR」を参照してください。Kerberos は Amazon EMRリリースバージョン 5.10.0 以降でのみ使用できます。

コンソールを使用して Kerberos 設定を指定する

次のガイドラインに従って、[Kerberos authentication (Kerberos 認証)] のオプションを選択します。

パラメータ 説明

Kerberos

このセキュリティ設定を使用するクラスターで Kerberos を有効にすることを指定します。クラスターがこのセキュリティ設定を使用する場合、クラスターで Kerberos 設定も指定する必要があります。そうしないと、エラーが発生します。

プロバイダー

クラスター専用 KDC

Amazon がこのセキュリティ設定を使用するクラスターのプライマリノードKDCに EMRを作成することを指定します。クラスターの作成時に、レルム名とKDC管理者パスワードを指定します。

必要に応じて、これを他のクラスターKDCから参照できます。別のセキュリティ設定を使用してこれらのクラスターを作成し、外部 を指定しKDC、クラスター専用 に指定したレルム名とKDC管理者パスワードを使用しますKDC。

外部 KDC

Amazon 5.20.0 EMR 以降でのみ使用できます。このセキュリティ設定を使用するクラスターが、クラスター外のKDCサーバーを使用して Kerberos プリンシパルを認証するように指定します。KDC クラスターに は作成されません。クラスターを作成するときは、外部 KDC のレルム名と管理者パスワードを指定しますKDC。

チケットのライフタイム

オプション。によって発行された Kerberos チケットKDCが、このセキュリティ設定を使用するクラスターで有効になる期間を指定します。

チケットの有効期間は、セキュリティ上の理由により制限されます。クラスターアプリケーションとサービスでは、期限が切れるとチケットを自動更新します。Kerberos 認証情報SSHを使用してクラスターに接続するユーザーは、チケットの有効期限が切れた後にプライマリノードのコマンドラインkinitから を実行して更新する必要があります。

クロス領域信頼

このセキュリティ設定を使用するクラスターKDC専用のクラスターと、別の Kerberos レルムKDCの との間のクロスレルム信頼を指定します。

別の領域のプリンシパル (通常はユーザー) は、この設定を使用するクラスターに対して認証されます。他の Kerberos 領域での追加設定が必要です。詳細については、「チュートリアル: Active Directory ドメインを使用したクロス領域信頼の設定」を参照してください。

クロス領域信頼プロパティ

領域

信頼関係の他の領域の Kerberos 領域名を指定します。慣例により、Kerberos 領域名はドメイン名と同じにします。ただし、すべて大文字にします。

[ドメイン]

信頼関係の他の領域のドメイン名を指定します。

[Admin server] (管理者サーバー)

信頼関係の他の領域にある管理サーバーの完全修飾ドメイン名 (FQDN) または IP アドレスを指定します。管理者サーバーとKDCサーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートで通信します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 749 が使用されます。オプションで、ポート (domain.example.com:749 など) を指定できます。

KDC サーバー

信頼関係の他の領域にあるKDCサーバーの完全修飾ドメイン名 (FQDN) または IP アドレスを指定します。KDC サーバーと管理サーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートを使用します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 88 が使用されます。オプションで、ポート (domain.example.com:88 など) を指定できます。

外部 KDC

外部クラスターKDCがクラスターで使用されることを指定します。

外部KDCプロパティ

[Admin server] (管理者サーバー)

外部管理サーバーの完全修飾ドメイン名 (FQDN) または IP アドレスを指定します。管理者サーバーとKDCサーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートで通信します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 749 が使用されます。オプションで、ポート (domain.example.com:749 など) を指定できます。

KDC サーバー

外部KDCサーバーの完全修飾ドメイン名 (FQDN) を指定します。KDC サーバーと管理サーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートを使用します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 88 が使用されます。オプションで、ポート (domain.example.com:88 など) を指定できます。

[Active Directory Integration] (Active Directory の統合)

Kerberos プリンシパル認証が Microsoft Active Directory ドメインに統合されることを指定します。

Active Directory 統合プロパティ

[Active Directory realm] (Active Directory 領域)

Active Directory ドメインの Kerberos 領域名を指定します。慣例により、Kerberos 領域名は通常、ドメイン名と同じにします。ただし、すべて大文字にします。

[Active Directory domain] (Active Directory ドメイン)

Active Directory ドメイン名を指定します。

[Active Directory server] (Active Directory サーバー)

Microsoft Active Directory ドメインコントローラーの完全修飾ドメイン名 (FQDN) を指定します。

を使用した Kerberos 設定の指定 AWS CLI

次のリファレンステーブルは、セキュリティ設定の Kerberos 設定のJSONパラメータを示しています。設定例については、「設定例」を参照してください。

パラメータ 説明

"AuthenticationConfiguration": {

Kerberos の場合は必須です。認証設定がこのセキュリティ設定の一部であることを指定します。

"KerberosConfiguration": {

Kerberos の場合は必須です。Kerberos 設定プロパティを指定します。

"Provider": "ClusterDedicatedKdc",

または

"Provider: "ExternalKdc",

ClusterDedicatedKdc は、このセキュリティ設定を使用するクラスターのプライマリノードKDCに EMRを作成することを Amazon に指定します。クラスターの作成時に、レルム名とKDC管理者パスワードを指定します。必要に応じて、これを他のクラスターKDCから参照できます。別のセキュリティ設定を使用してこれらのクラスターを作成し、外部 を指定しKDC、クラスター専用 でクラスターを作成したときに指定したレルム名とKDC管理者パスワードを使用しますKDC。

ExternalKdc は、クラスターが外部 を使用することを指定しますKDC。Amazon EMRはプライマリノードKDCに を作成しません。このセキュリティ設定を使用するクラスターは、外部 のレルム名とKDC管理者パスワードを指定する必要がありますKDC。

"ClusterDedicatedKdcConfiguration": {

ClusterDedicatedKdc が指定されている場合は必須です。

"TicketLifetimeInHours": 24,

オプション。によって発行された Kerberos チケットKDCが、このセキュリティ設定を使用するクラスターで有効になる期間を指定します。

チケットの有効期間は、セキュリティ上の理由により制限されます。クラスターアプリケーションとサービスでは、期限が切れるとチケットを自動更新します。Kerberos 認証情報SSHを使用してクラスターに接続するユーザーは、チケットの有効期限が切れた後にプライマリノードのコマンドラインkinitから を実行して更新する必要があります。

"CrossRealmTrustConfiguration": {

このセキュリティ設定を使用するクラスターKDC専用のクラスターと、別の Kerberos レルムKDCの との間のクロスレルム信頼を指定します。

別の領域のプリンシパル (通常はユーザー) は、この設定を使用するクラスターに対して認証されます。他の Kerberos 領域での追加設定が必要です。詳細については、「チュートリアル: Active Directory ドメインを使用したクロス領域信頼の設定」を参照してください。

"Realm": "KDC2.COM",

信頼関係の他の領域の Kerberos 領域名を指定します。慣例により、Kerberos 領域名はドメイン名と同じにします。ただし、すべて大文字にします。

"Domain": "kdc2.com",

信頼関係の他の領域のドメイン名を指定します。

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

信頼関係の他の領域にある管理サーバーの完全修飾ドメイン名 (FQDN) または IP アドレスを指定します。管理者サーバーとKDCサーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートで通信します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 749 が使用されます。オプションで、ポート (domain.example.com:749 など) を指定できます。

"KdcServer": "kdc.com:88"

信頼関係の他の領域にあるKDCサーバーの完全修飾ドメイン名 (FQDN) または IP アドレスを指定します。KDC サーバーと管理サーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートを使用します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 88 が使用されます。オプションで、ポート (domain.example.com:88 など) を指定できます。

}

}

"ExternalKdcConfiguration": {

ExternalKdc が指定されている場合は必須です。

"TicketLifetimeInHours": 24,

オプション。によって発行された Kerberos チケットKDCが、このセキュリティ設定を使用するクラスターで有効になる期間を指定します。

チケットの有効期間は、セキュリティ上の理由により制限されます。クラスターアプリケーションとサービスでは、期限が切れるとチケットを自動更新します。Kerberos 認証情報SSHを使用してクラスターに接続するユーザーは、チケットの有効期限が切れた後にプライマリノードのコマンドラインkinitから を実行して更新する必要があります。

"KdcServerType": "Single",

単一のKDCサーバーを参照することを指定します。 Singleは現在サポートされている唯一の値です。

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

外部管理サーバーの完全修飾ドメイン名 (FQDN) または IP アドレスを指定します。管理者サーバーとKDCサーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートで通信します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 749 が使用されます。オプションで、ポート (domain.example.com:749 など) を指定できます。

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

外部KDCサーバーの完全修飾ドメイン名 (FQDN) を指定します。KDC サーバーと管理サーバーは通常、同じ を持つ同じマシンで実行されますがFQDN、異なるポートを使用します。

ポートを指定しない場合、Kerberos のデフォルトであるポート 88 が使用されます。オプションで、ポート (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ロールを設定する」を参照してください。

EMRFS を使用するためのIAMロールの指定 AWS CLI

セキュリティ設定EMRFS内で JSON のカスタムIAMロールを指定するためのスニペットの例を次に示します。3 つの異なる識別子タイプのロールマッピングと、パラメータリファレンスを示します。

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

必須。1 つ以上のロールマッピング定義が含まれます。ロールのマッピングは、表示順に上から下に評価されます。ロールマッピングが Amazon S3 内のデータEMRFS呼び出しに対して true と評価された場合、それ以上のロールマッピングは評価されず、リクエストに指定されたIAMロールEMRFSが使用されます。ロールマッピングは、以下の必須パラメータで構成されます。

   "Role":

IAM ロールのARN識別子を 形式で指定しますarn:aws:iam::account-id:role/role-name。これは、Amazon S3 へのEMRFSリクエストがIdentifiers指定された のいずれかと一致する場合に Amazon がEMR引き受けるIAMロールです。 Amazon S3

   "IdentifierType":

次のいずれかを指定できます。

  • "User" は、識別子が 1 人以上の Hadoop ユーザーであることを指定します。これは Linux アカウントユーザーまたは Kerberos プリンシパルです。EMRFS リクエストが指定されたユーザーから発信された場合、IAMロールが引き受けられます。

  • "Prefix" は、識別子が Amazon S3 の場所であることを指定します。IAM ロールは、指定されたプレフィックスを持つ場所への呼び出しに対して引き受けられます。例えば、プレフィックス s3://mybucket/ は、 s3://mybucket/mydir および s3://mybucket/yetanotherdir に一致します。

  • "Group" は、識別子が 1 つ以上の Hadoop グループであることを指定します。リクエストが指定されたグループまたはグループのユーザーから発信された場合、IAMロールが引き受けられます。

   "Identifiers":

適切な識別子タイプの 1 つ以上の識別子を指定します。複数の識別子は、スペースを入れずにカンマで区切ります。

Amazon EC2インスタンスへのメタデータサービスリクエストを設定する

インスタンスメタデータは、インスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用します。次のいずれかのメソッドを使って、実行中のインスタンスからインスタンスメタデータにアクセスできます。

  • インスタンスメタデータサービスバージョン 1 (IMDSv1) - リクエスト/レスポンスメソッド

  • インスタンスメタデータサービスバージョン 2 (IMDSv2) - セッション指向の方法

Amazon は IMDSv1と の両方EC2をサポートしていますがIMDSv2、Amazon EMR EMRは Amazon 5.23.1、5.27.1、5.32 以降、および 6.2 以降IMDSv2をサポートしています。これらのリリースでは、Amazon EMRコンポーネントはすべてのIMDS呼び出しIMDSv2に を使用します。アプリケーションコードのIMDS呼び出しでは、 IMDSv1と の両方を使用するかIMDSv2、セキュリティを強化するIMDSv2ためだけに使用するIMDSように を設定できます。を使用するIMDSv2必要がある を指定すると、 IMDSv1 は機能しなくなります。

詳細については、「Amazon EC2ユーザーガイド」の「インスタンスメタデータサービスの設定」を参照してください。

注記

以前の Amazon 5.x または 6.x リリースでは、Amazon EMR EMRコンポーネントがすべてのIMDS呼び出しに使用すると、 をオフにするとクラスターの起動IMDSv1が失敗IMDSv1します。をオフにするときIMDSv1はIMDSv1、 を使用するカスタムソフトウェアが に更新されていることを確認してくださいIMDSv2。

AWS CLIを使用してインスタンスメタデータサービス設定を指定する

セキュリティ設定内で Amazon EC2インスタンスメタデータサービス (IMDS) JSON を指定するためのスニペットの例を次に示します。カスタムセキュリティ設定の使用はオプションです。

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
パラメータ 説明

"InstanceMetadataServiceConfiguration":

セキュリティ設定IMDS内で を指定せず、 を必要とする Amazon EMRリリースを使用する場合IMDSv1、Amazon EMR はデフォルトで最小インスタンスメタデータサービスバージョンIMDSv1として を使用します。独自の設定を使用する場合は、次のパラメータの両方が必要です。

"MinimumInstanceMetadataServiceVersion":

必須。1 または 2 を指定します。の値は、 IMDSv1と 1を許可しますIMDSv2。の値は のみ2を許可しますIMDSv2。

"HttpPutResponseHopLimit":

必須。インスタンスメタデータリクエストに必要なHTTPPUTレスポンスホップ制限。数値が大きいほど、インスタンスメタデータリクエストの転送距離を伸ばすことができます。デフォルト: 1164 の整数を指定します。

コンソールを使用してインスタンスメタデータサービス設定を指定する

Amazon EMRコンソールからクラスターを起動するときにIMDS、 の使用を設定できます。

コンソールIMDSを使用して の使用を設定するには:
  1. セキュリティ設定ページで新しいセキュリティ設定を作成するときは、EC2インスタンスメタデータサービス設定EC2インスタンスメタデータサービスの設定を選択します。この設定は、Amazon EMR 5.23.1、5.27.1、5.32 以降、および 6.2 以降でのみサポートされています。

  2. [Minimum Instance Metadata Service Version] (インスタンスメタデータサービスの最小バージョン) オプションで、次のいずれかを選択します。

    • IMDSv2 このクラスターでのみ を許可する場合は、 をオフにIMDSv1して IMDSv2のみを許可します。Amazon EC2 ユーザーガイド「インスタンスメタデータサービスバージョン 2 の使用への移行」を参照してください。

    • このクラスターIMDSv2で IMDSv1および セッション指向を許可する場合は、クラスター で と の両方を許可します。 IMDSv1 IMDSv2

  3. ではIMDSv2、プHTTPットレスポンスホップ制限を ~ の整数に設定することで、メタデータトークンのネットワークホップの許容数を設定することもできます641

詳細については、「Amazon EC2ユーザーガイド」の「インスタンスメタデータサービスの設定」を参照してください。

「Amazon ユーザーガイド」の「インスタンスの詳細の設定」および「インスタンスメタデータサービスの設定」を参照してください。 EC2