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

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

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

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

コンソールを使用してセキュリティ設定を作成するには

  1. で Amazon EMR コンソールを開きます。https://console.aws.amazon.com/elasticmapreduce/

  2. ナビゲーションペインで [Security Configurations (セキュリティ設定)] を選択して、[Create security configuration (セキュリティ設定の作成)] を選択します。

  3. セキュリティ設定の [Name (名前)] を入力します。

  4. のオプションの選択Encryptionおよび認証以下のセクションで説明するようにして、作成

AWS CLI を使用してセキュリティ設定を作成するには

  • 次の例に示すように create-security-configuration コマンドを使用します。

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

    • SecConfigDef で、インライン JSON 構造またはローカル JSON ファイルへのパス (例: file://MySecConfig.json) を指定します。JSON パラメータは、次のオプションを定義します。Encryption,Amazon S3 への EMRFS アクセスの IAM ロール, および認証は、以下のセクションで説明しています。

    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 が EMRFS を使用して Amazon S3 データを暗号化する方法を指定する値を選択します。

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

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

    • AWS KMS key

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

      EBS 暗号化

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

    • Custom

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

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

    • PEM

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

    • Custom

      カスタム証明書プロバイダーを指定し、S3 オブジェクトで、カスタム証明書プロバイダー JAR ファイルの Amazon S3 の場所を入力するか、Amazon S3 ARN の場所を入力します。[Key provider class (キープロバイダークラス)] で、TLSArtifactsProvider インターフェイスを実装するアプリケーションで宣言するクラスの完全なクラス名を入力します。

を使用して暗号化オプションの指定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 ファイルを参照します。

  • Amazon S3 の暗号化には CSE-KMS が使用されます。

  • ローカルディスク暗号化では、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.jar" } } } }'

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

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

  • CSE-Custom は 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 バケットごとに 1 つのキーが使用され、これらの個々の 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" } } } }'

暗号化設定の JSON リファレンス

次の表には、暗号化設定用の JSON パラメータが一覧表示されており、各パラメータで許可される値について説明しています。

パラメータ 説明
「トランジット暗号化を有効にする」: true | false Specify true to enable in-transit encryption and false to disable it. If omitted, false is assumed, and in-transit encryption is disabled.
「AtRest暗号化を有効にする」: true | false Specify true to enable at-rest encryption and false to disable it. If omitted, false is assumed and at-rest encryption is disabled.
伝送中の暗号化パラメータ
「InTransit暗号化設定」: Specifies a collection of values used to configure in-transit encryption when InTransit暗号化を有効にする is true.
「証明書プロバイダの種類」: 「PEM」 | 「カスタムの」 Specifies whether to use PEM certificates referenced with a zipped file, or a Custom certificate provider. If PEM is specified, S3Object must be a reference to the location in Amazon S3 of a zip file containing the certificates. If Custom is specified, S3Object must be a reference to the location in Amazon S3 of a JAR file, followed by a 証明書プロバイダークラス entry.
「S3Object」: "zipLocation" | "JarLoc" Provides the location in Amazon S3 to a zip file when PEM is specified, or to a JAR file when Custom is specified. The format can be a path (for example, s3: //MyConfig/artifacts/CertFiles.zip) or an ARN (for example, arn: aws: s3።: code/mycertProvider.jar). If a zip file is specified, it must contain files named exactly privateKey.pem and certificateChain.pem. A file named trustedCertificates.pem is optional.
「証明書プロバイダクラス」: "MyClassID" Required only if Custom is specified for 証明書プロバイダの種類. MyClassID specifies a full class name declared in the JAR file, which implements the TLSArtifactsProvider interface. For example, com.myCompany.myCertProvider.
保管時の暗号化パラメータ
「atrest暗号化設定」: Specifies a collection of values for at-rest encryption when Atrest暗号化を有効にする is true, including Amazon S3 encryption and local disk encryption.
Amazon S3 の暗号化パラメータ
「S3EncryptionConfiguration」: Specifies a collection of values used for Amazon S3 encryption with the EMR File System (EMRFS).
「暗号化モード」: 「SSE-S3" | 「SSE-KMS」 | 「CSE-KMS」 | 「CSE-Custom」 Specifies the type of Amazon S3 encryption to use. If SSE-S3 is specified, no further Amazon S3 encryption values are required. If either SSE-KMS or CSE-KMS is specified, an AWS KMS customer master key (CMK) ARN must be specified as the AwsKmsKey value. If CSE-Custom is specified, S3Object and 暗号化キープロバイダークラス values must be specified.
「AwsKmsKey」: "myKeyArn" Required only when either SSE-KMS or CSE-KMS is specified for EncryptionMode. myKeyArn must be a fully specified ARN to a key (for example, arn: aws: kms: us-east-1:123456789012: key/12345678-1234-1234-1234-1234-1234-1234-1234-1234-123456789012).
「S3Object」: "JarLoc" Required only when CSE-Custom is specified for 証明書プロバイダの種類. JarLoc provides the location in Amazon S3 to a JAR file. The format can be a path (for example, s3: //MyConfig/artifacts/MyKeyProvider.jar) or an ARN (for example, arn: aws: s3።: code/mykeyProvider.jar).
「EncryptionKeyProviderClass」: "mys3keyClassID" Required only when CSE-Custom is specified for EncryptionMode. mys3keyClassID specifies a full class name of a class declared in the application that implements the EncryptionMaterialsProvider interface; for example, com.mycompany.mys3keyPro.
ローカルディスクの暗号化パラメータ
「ローカルディスク暗号化設定」 Specifies the key provider and corresponding values to be used for local disk encryption.
「EBS暗号化を有効にする」:true|false Specify true to enable EBS encryption. EBS encryption encrypts the EBS root device volume and attached storage volumes. To use EBS encryption, you must specify AWSKMs as your 暗号化キープロバイダの種類.
「暗号化キープロバイダの種類」: 「awskms」 | 「カスタムの」 Specifies the key provider. If AWSKMs is specified, an AWS KMS CMK ARN must be specified as the AwsKmsKey value. If Custom is specified, S3Object and 暗号化キープロバイダークラス values must be specified.
「AwsKmsKey: "myKeyArn" Required only when AWSKMs is specified for タイプ. myKeyArn must be a fully specified ARN to a key (for example, arn: aws: kms: us-east-1:123456789012: key/12345678-1234-1234-1234-456789012345678-1234-4567890123).
「S3Object」: "JarLoc" Required only when CSE-Custom is specified for 証明書プロバイダの種類. JarLoc provides the location in Amazon S3 to a JAR file. The format can be a path (for example, s3: //MyConfig/artifacts/MyKeyProvider.jar) or an ARN (for example, arn: aws: s3።: code/mykeyProvider.jar).

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Required only when Custom is specified for タイプ. MyLocalDiskKeyClassID specifies a full class name of a class declared in the application that implements the EncryptionMaterialsProvider interface; for example, com.mycompany.myLocalDiskKeyProv.

Kerberos 認証の設定

Kerberos 設定を使用したセキュリティ設定は、Kerberos 属性を使用して作成されているクラスターでのみ使用できます。それ以外の場合はエラーが発生します。詳細については、「」を参照してください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 ドメインを使用したクロス領域信頼の設定

クロスレルム信頼プロパティ

Realm

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

分野

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

管理者サーバー

信頼関係の他の領域の管理サーバーの完全修飾ドメイン名 (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 プロパティ

管理者サーバー

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

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

KDC サーバー

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

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

ClusterDedicatedKdcAmazon 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 ドメイン名を指定します。

}

}

}

}

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指定された。

   "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 のみを使用するように設定することができます。IMDSv2を使用しなければならないように指定すると、IMDSv1はもう機能しなくなります。

詳細については、「」を参照してください。インスタンスメタデータサービスの設定Linux インスタンス用 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":

必須。

"MinimumInstanceMetadataServiceVersion":

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

"HttpPutResponseHopLimit":

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

コンソールを使用したインスタンスメタデータサービスの設定の指定

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


        					Amazon EMR コンソールでの IMDS セキュリティ設定コントロール

コンソールを使用して IMDS の使用を設定するには、次の手順を実行します。

  1. で新しいセキュリティ設定を作成する場合セキュリティ設定ページで、[] を選択します。EC2 インスタンスメタデータサービスの設定EC2 インスタンスメタデータサービス設定中。この設定は、Amazon EMR 5.23.1、5.27.1、5.32 以降、および 6.2 以降でのみサポートされます。

  2. 向けの最小インスタンスメタデータサービスバージョンオプションで、次のいずれかを選択します。

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

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

  3. IMDSv2 では、メタデータトークンに許容されるネットワークホップ数を設定することもできます。HTTP PUT レスポンスのホップ制限値間の整数に1および64

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

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