セキュリティ設定を作成する - 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 種類の暗号化オプションを指定します。保管時のデータ暗号化のオプションにはEMRFS、Amazon S3 とローカルディスク暗号化の両方が含まれます。転送時の暗号化オプションにより、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 オブジェクト には、ARNカスタムキープロバイダーJARファイルの場所を Amazon S3 または Amazon S3 に入力します。キープロバイダークラス には、 EncryptionMaterialsProvider インターフェイスを実装するアプリケーションで宣言されたクラスの完全なクラス名を入力します。ここで指定するクラス名は、CSE-Custom に指定されたクラス名とは異なる必要があります。

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

    • PEM

      zip PEM ファイル内で指定したファイルを使用するには、このオプションを選択します。zip ファイルには、.pem と privateKey.pem の 2 つのアーティファクトが必要ですcertificateChain。3 番目のファイル trustedCertificates.pem はオプションです。詳細については、「Amazon 暗号化を使用して転送中のデータをEMR暗号化するための証明書を提供する」を参照してください。S3 オブジェクト の場合、zip ファイルフィールドARNの Amazon S3 または 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 暗号化に使用されます 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である必要があります。カスタム を指定するS3Object場合、 はJARファイルの Amazon S3 内の場所への参照でなければならず、その後にCertificateProviderClassエントリが続きます。
"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" : が の場合、Amazon S3 EnableAtRestEncryption 暗号化やローカルディスク暗号化など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 ARNAwsKmsKey値として指定する必要があります。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" Key CMK 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に Amazon が EMR を作成することを指定します。クラスターの作成時に、領域名と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",

1 つの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が使用されます。 Amazon S3 ロールマッピングは、以下の必須パラメータで構成されます。

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

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

注記

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

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

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

{ "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] (インスタンスメタデータサービスの最小バージョン) オプションで、次のいずれかを選択します。

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

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

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