セキュリティ設定を作成する - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

セキュリティ設定を作成する

このトピックでは、Amazon EMR コンソールと を使用してセキュリティ設定を作成し AWS CLI、EMRFS の暗号化、認証、IAM ロールを構成するパラメータのリファレンスを作成する一般的な手順について説明します。これらの機能の詳細については、次のトピックを参照してください。

コンソールを使用してセキュリティ設定を作成するには
  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 パラメータは、以下のセクションで説明するように、[Encryption] (暗号化)、[IAM Roles for EMRFS access to Amazon S3] (Amazon S3 にアクセスするための EMRFS の IAM ロール)、および [Authentication] (認証) のオプションを定義します。

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

データ暗号化の設定

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

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

注記

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

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

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

  • ファイルシステム内に保存されたデータを暗号化するには、[At rest encryption (保管時の暗号化)] の下のオプションを選択します。

    Amazon S3、ローカルディスク、またはその両方でデータを暗号化するように選択できます。

  • [S3 data encryption] (S3 データ暗号化) の [Encryption mode] (暗号化モード) で、Amazon EMR での EMRFS による Amazon S3 データの暗号化方法を指定する値を選択します。

    次に実行する操作は、選択する暗号化モードによって異なります。

  • [Local disk encryption (ローカルディスク暗号化)] で、[Key provider type (キープロバイダーのタイプ)] の値を選択します。

    • AWS KMS key

      このオプションを選択して AWS KMS keyを指定します。[AWS KMS key] で、キーを選択します。キーは EMR クラスターと同じリージョンに存在する必要があります。キーの要件の詳細については、暗号化 AWS KMS keys に を使用するを参照してください。

      EBS 暗号化

      をキープロバイダー AWS KMS として指定すると、EBS 暗号化を有効にして EBS ルートデバイスとストレージボリュームを暗号化できます。このようなオプションを有効にするには、Amazon EMR サービスロール EMR_DefaultRole に、指定した AWS KMS key を使用するアクセス許可を付与する必要があります。キーの要件の詳細については、KMS キーに追加のアクセス許可を提供して EBS 暗号化を有効にするを参照してください。

    • カスタム

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

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

    • PEM

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

    • カスタム

      このオプションを選択してカスタム証明書プロバイダーを指定し、[S3 object] (S3 オブジェクト) で、カスタム証明書プロバイダー JAR ファイルの Amazon S3 の場所、または Amazon S3 ARN を指定します。キープロバイダークラス には、TLS ArtifactsProvider インターフェイスを実装するアプリケーションで宣言されたクラスの完全なクラス名を入力します。

を使用した暗号化オプションの指定 AWS CLI

以下のセクションでは、サンプルシナリオを使用して、設定、キープロバイダー、JSON パラメータの参照、および適切な値ごとに正しい形式の --security-configuration 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" } } } }'

次の例は、以下のシナリオについて示しています。

  • 伝送中のデータ暗号化が有効で、ARN を使用して Amazon S3 の PEM 証明書を含む zip ファイルを参照します。

  • 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" } } } }'

次の例は、以下のシナリオについて示しています。

  • 伝送中のデータ暗号化は、カスタムキープロバイダーで有効になります。

  • Amazon S3 データに CSE-Custom が使用されます。

  • ローカルディスク暗号化ではカスタムキープロバイダーが使用されます。

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 は EMR WAL 暗号化に使用されます

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryption 関連する暗号化を有効にする場合、 と はEnableAtRestEncryption引き続き true になる可能性があります。

次の例は、以下のシナリオについて示しています。

  • SSE-KMS-WAL は EMR WAL 暗号化に使用されます

  • サーバー側の暗号化でキープロバイダー 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。 は、TLS ArtifactsProvider インターフェイスを実装する JAR ファイルで宣言された完全なクラス名MyClassIDを指定します。例えば com.mycompany.MyCertProvider です。
保管時の暗号化パラメータ
"AtRestEncryptionConfiguration" : が の場合、Amazon S3 EnableAtRestEncryption 暗号化やローカルディスク暗号化などtrue、保管時の暗号化の値のコレクションを指定します。
Amazon S3 暗号化パラメータ
"S3EncryptionConfiguration" : Amazon EMR File System (EMRFS) による Amazon S3 暗号化に使用される値のコレクションを指定します。
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" 使用する Amazon S3 暗号化のタイプを指定します。SSE-S3 を指定した場合、それ以上 Amazon S3 暗号化値は必要ありません。SSE-KMS または のいずれかCSE-KMSを指定する場合は、ARN AWS KMS key をAwsKmsKey値として指定する必要があります。CSE-Custom を指定した場合、S3ObjectEncryptionKeyProviderClass の値を指定する必要があります。
"AwsKmsKey" : "MyKeyARN" SSE-KMS または CSE-KMSEncryptionMode で指定された場合にのみ必要です。MyKeyARN はキーへの完全修飾 ARN にする必要があります (例: 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 キー ARN をAwsKmsKey値として指定する必要があります。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 キー ID Arn を指定します。

Kerberos 認証の設定

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

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

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

パラメータ 説明

Kerberos

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

プロバイダー

クラスター専用 KDC

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

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

外部 KDC

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

チケットのライフタイム

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

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

クロス領域信頼

このセキュリティ設定を使用するクラスター上のクラスター専用 KDC と、異なる Kerberos 領域内の KDC との間のクロス領域信頼を指定します。

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

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

領域

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

[ドメイン]

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

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

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

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

[KDC server] (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 server] (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 は、Amazon EMR が、このセキュリティ設定を使用するクラスターのプライマリノードに KDC を作成することを指定します。領域名と KDC 管理者パスワードは、クラスターの作成時に指定します。必要に応じて、この KDC を他のクラスターから参照できます。異なるセキュリティ設定を使用してこれらのクラスターを作成し、外部 KDC を指定し、クラスター専用 KDC を使用してクラスターを作成したときに指定した領域名と KDC 管理者パスワードを使用します。

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

"ClusterDedicatedKdcConfiguration": {

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

"TicketLifetimeInHours": 24,

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

チケットの有効期間は、セキュリティ上の理由により制限されます。クラスターアプリケーションとサービスでは、期限が切れるとチケットを自動更新します。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,

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

チケットの有効期間は、セキュリティ上の理由により制限されます。クラスターアプリケーションとサービスでは、期限が切れるとチケットを自動更新します。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 ロールを設定する

EMRFS の IAM ロールを使用すると、Amazon S3 の EMRFS データに異なるアクセス権限を付与することができます。指定した ID がアクセスリクエストに含まれている場合は、アクセス権限で使用する IAM ロールを指定するロールマッピングを作成します。識別子は、Hadoop ユーザーかロール、または Amazon S3 プレフィックスです。

詳細については、「Amazon S3 への EMRFS リクエストの IAM ロールを設定する」を参照してください。

を使用した EMRFS の IAM ロールの指定 AWS CLI

以下は、セキュリティ設定内の EMRFS のカスタム IAM ロールを指定するための JSON スニペットの例です。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 と評価された場合、それ以上のロールマッピングは評価されず、EMRFS はリクエストに指定された IAM ロールを使用します。ロールマッピングは、以下の必須パラメータで構成されます。

   "Role":

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

   "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 EC2 は IMDSv1 と IMDSv2 の両方をサポートしていますが、Amazon EMR 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 EC2

注記

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

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

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

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

"InstanceMetadataServiceConfiguration":

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

"MinimumInstanceMetadataServiceVersion":

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

"HttpPutResponseHopLimit":

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

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

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

コンソールを使用して IMDS の使用を設定するには
  1. [Security configurations] (セキュリティ設定) ページで新しいセキュリティ設定を作成する場合、[EC2 Instance Metadata Service] (EC2 インスタンスメタデータサービス) 設定で [Configure EC2 Instance metadata service] (EC2 インスタンスメタデータサービスの設定) を選択します。この設定は、Amazon EMR 5.23.1、5.27.1、5.32 以降、および 6.2 以降でのみサポートされます。

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

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

    • [Allow both IMDSv1 and IMDSv2 on cluster] (クラスターで IMDSv1 と IMDSv2 の両方を許可する)。これは、このクラスターで IMDSv1 およびセッション指向の IMDSv2 を許可する場合に選択します。

  3. IMDSv2 では、[HTTP put response hop limit] (HTTP PUT レスポンスのホップ制限) を 164 の整数に設定して、メタデータトークンに許容されるネットワークホップ数を設定することもできます。

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

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