AD Connector を使用して Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD にシームレスに結合する - AWS Directory Service

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

AD Connector を使用して Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD にシームレスに結合する

この手順では、Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD ディレクトリにシームレスに結合します。

以下の Linux インスタンスのディストリビューションおよびバージョンがサポートされています。

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64 ビット x86)

  • Red Hat Enterprise Linux 8 (HVM) (64 ビット x86)

  • Ubuntu Server 18.04 LTS および Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSE Linux Enterprise Server 15 SP1

注記

Ubuntu 14 および Red Hat Enterprise Linux 7 より前のディストリビューションでは、シームレスなドメイン結合機能はサポートされていません。

前提条件

EC2 Linux インスタンスへのシームレスなドメイン結合を設定する前に、このセクションの手順を完了する必要があります。

シームレスなドメイン結合のサービスアカウントを選択する

AD Connector を使用して、Linux コンピュータをオンプレミスActive Directoryドメインにシームレスに結合できます。これを行うには、コンピュータをドメインに結合するためのコンピュータアカウントの作成アクセス許可を持つユーザーアカウントを作成する必要があります。必要に応じて、AD Connector サービスアカウントを使用できます。または、コンピュータをドメインに結合するのに十分な権限を持つ他のアカウントを使用することもできます。ドメイン管理者または他のグループのメンバーが、コンピュータをドメインに結合するための十分な権限を持っている場合がありますが、これらを使用することはお勧めしません。ベストプラクティスとして、コンピュータをドメインに結合するための必要最小限の権限を持つサービスアカウントを使用することをお勧めします。

コンピュータをドメインに結合するために必要な最小限の権限を持つアカウントを委任するには、次の PowerShell コマンドを実行します。これらのコマンドは、 管理対象の Microsoft AD AWS 用アクティブディレクトリ管理ツールのインストールがインストールされているドメインに参加しているWindowsコンピュータから実行する必要があります。また、コンピュータ OU またはコンテナのアクセス許可を変更するアクセス許可を持つアカウントを使用する必要があります。 PowerShell コマンドは、サービスアカウントがドメインのデフォルトコンピュータコンテナにコンピュータオブジェクトを作成できるようにするアクセス許可を設定します。グラフィカルユーザーインターフェイス (GUI) を使用する場合は、権限をサービスアカウントに委任する で説明している手動プロセスを使用できます。

$AccountName = 'awsSeamlessDomain' # DO NOT modify anything below this comment. # Getting Active Directory information. Import-Module 'ActiveDirectory' $Domain = Get-ADDomain -ErrorAction Stop $BaseDn = $Domain.DistinguishedName $ComputersContainer = $Domain.ComputersContainer $SchemaNamingContext = Get-ADRootDSE | Select-Object -ExpandProperty 'schemaNamingContext' [System.GUID]$ServicePrincipalNameGuid = (Get-ADObject -SearchBase $SchemaNamingContext -Filter { lDAPDisplayName -eq 'Computer' } -Properties 'schemaIDGUID').schemaIDGUID # Getting Service account Information. $AccountProperties = Get-ADUser -Identity $AccountName $AccountSid = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' $AccountProperties.SID.Value # Getting ACL settings for the Computers container. $ObjectAcl = Get-ACL -Path "AD:\$ComputersContainer" # Setting ACL allowing the service account the ability to create child computer objects in the Computers container. $AddAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'CreateChild', 'Allow', $ServicePrincipalNameGUID, 'All' $ObjectAcl.AddAccessRule($AddAccessRule) Set-ACL -AclObject $ObjectAcl -Path "AD:\$ComputersContainer"

グラフィカルユーザーインターフェイス (GUI) を使用する場合は、権限をサービスアカウントに委任する の説明に従って手動プロセスを使用できます。

ドメインサービスアカウントを保存するシークレットを作成する

AWS Secrets Manager を使用してドメインサービスアカウントを保存できます。

ドメインサービスアカウントの情報を保存するシークレットを作成するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/secretsmanager/ で AWS Secrets Manager コンソールを開きます。

  2. [Store a new secret] (新しいシークレットの保存) を選択します。

  3. [Store a new secret] (新しいシークレットを保存する) のページで、次の操作を行います:

    1. [シークレットのタイプ] で、[その他のシークレットのタイプ] を選択します。

    2. [Key/value pairs] (キー/値ペア) で、次のように実行します。

      1. 最初のボックスに awsSeamlessDomainUsername と入力します。同じ行の次のボックスに、サービスアカウントのユーザー名を入力します。例えば、以前に PowerShell コマンドを使用した場合、サービスアカウント名は になりますawsSeamlessDomain

        注記

        awsSeamlessDomainUsername を正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

        の AWS Secrets Manager コンソールでシークレットタイプを選択します。awsSeamlessDomainUsernameシークレットタイプで他のタイプのシークレットが選択され、キー値として入力されます。
      2. [Add row] (行の追加) を選択します。

      3. 新しい行で、最初のボックスに awsSeamlessDomainPassword と入力します。同じ行の次のボックスに、サービスアカウントのパスワードを入力します。

        注記

        awsSeamlessDomainPassword を正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

      4. 暗号化キーの下で、デフォルト値aws/secretsmanagerのままにしておきます。 このオプションを選択すると、 AWS Secrets Manager は常に秘密を暗号化します。自身で作成したキーを選択することもできます。

        注記

        使用するシークレットに応じて AWS Secrets Manager、 に関連する料金が発生します。現在の価格の詳細なリストについては、「AWS Secrets Manager 料金表」を参照してください。

        Secrets Manager aws/secretsmanagerが作成する AWS マネージドキーを使用して、シークレットを無料で暗号化できます。独自の KMS キーを作成してシークレットを暗号化すると、 は現在の AWS KMS レートで AWS 課金します。詳細については、「AWS Key Management Service の料金」を参照してください。

      5. [次へ] をクリックします。

  4. [Secret name]の下に、d-xxxxxxxxxxをディレクトリIDに置き換えて、以下のフォーマットでディレクトリIDを含むsecret nameを入力します:

    aws/directory-services/d-xxxxxxxxx/seamless-domain-join

    これは、アプリケーション内のシークレットを取得するために使用されます。

    注記

    aws/directory-services/d-xxxxxxxxx/seamless-domain-join は正確に入力する必要がありますが、d-xxxxxxxxxx はディレクトリ ID に置き換えてください。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

    シークレットの設定ページの AWS Secrets Manager コンソールで。シークレット名が入力され、強調表示されます。
  5. それ以外はすべてデフォルトのままにして、[Next] (次へ) をクリックします。

  6. [Configure automatic rotation] (自動ローテーションを設定) で [Disable automatic rotation] (自動ローテーションを無効にする) を選択し、[Next] (次へ) をクリックします。

    このシークレットの保存後にローテーションを有効にできます。

  7. 設定を確認し、[Store] (保存) をクリックして変更を保存します。Secrets Manager コンソールがアカウントのシークレットリストに戻ります。リストには、新しいシークレットが追加されています。

  8. 新しく作成したシークレット名をリストから選択し、[Secret ARN] (シークレット ARN) 値をメモします。これは次のセクションで必要になります。

ドメインサービスアカウントシークレットのローテーションを有効にする

セキュリティ体制を改善するために、シークレットを定期的にローテーションすることをお勧めします。

ドメインサービスアカウントシークレットのローテーションを有効にするには

必要な IAM ポリシーとロールを作成する

以下の前提条件のステップを使用して、Secrets Manager のシームレスなドメイン結合シークレット (以前に作成したもの) への読み取り専用アクセスを許可するカスタムポリシーを作成し、新しい LinuxEC2DomainJoin IAM ロールを作成します。

Secrets Manager の IAM 読み取りポリシーを作成する

IAM コンソールを使用して、Secrets Manager シークレットへの読み取り専用アクセスを許可するポリシーを作成します。

Secrets Manager の IAM 読み取りポリシーを作成するには
  1. IAM ポリシーを作成する権限を持つユーザー AWS Management Console として にサインインします。次に、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインの [アクセス管理] で、[ポリシー] を選択します。

  3. [Create policy] (ポリシーの作成) を選択します。

  4. [JSON] タブを選択し、以下の JSON ポリシードキュメントからテキストをコピーします。これを、[JSON] テキストボックスに貼り付けます。

    注記

    リージョンとリソース ARN を、先ほど作成したシークレットの実際の リージョンとARN に置き換えていることを確認してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:xxxxxxxxx:secret:aws/directory-services/d-xxxxxxxxx/seamless-domain-join" ] } ] }
  5. 完了したら、[Next] を選択します。構文エラーがある場合は、Policy Validator によってレポートされます。詳細については、「IAM ポリシーの検証」を参照してください。

  6. [Review policy] (ポリシーの確認) ページで、ポリシー名を入力します (SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read など)。[Summary] (概要) セクションで、ポリシーで付与されているアクセス許可を確認します。[Create Policy] (ポリシーの作成) をクリックし、変更を保存します。新しいポリシーが管理ポリシーのリストに表示されます。これで ID にアタッチする準備は完了です。

注記

シークレットごとに 1 つのポリシーを作成することをお勧めします。そうすることで、インスタンスが適切なシークレットにのみアクセスできるようになり、インスタンスが侵害された場合の影響を最小限に抑えることができます。

LinuxEC2DomainJoin ロールを作成する

IAM コンソールを使用して、Linux EC2 インスタンスへのドメイン結合に使用するロールを作成します。

LinuxEC2DomainJoin ロールを作成するには
  1. IAM ポリシーを作成する権限を持つユーザー AWS Management Console として にサインインします。次に、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ナビゲーションペインの [Access Management] (アクセス管理) で、[Roles] (ロール) を選択します。

  3. コンテンツペインで、[Create role] (ロールの作成) を選択します。

  4. [Select type of trusted entity] (信頼されたエンティティの種類を選択) の下で、[AWS Service] を選択します。

  5. [Use case] (ユースケース) で EC2 を選択し、[Next] (次へ) を選択します。

    IAM コンソールで、信頼できるエンティティの選択 page. AWS service と EC2 が選択されます。
  6. [Filter policies] (フィルターポリシー) で、以下を実行します。

    1. AmazonSSMManagedInstanceCore と入力します。次に、リスト内のその項目のチェックボックスをオンにします。

    2. AmazonSSMDirectoryServiceAccess と入力します。次に、リスト内のその項目のチェックボックスをオンにします。

    3. SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read (または前の手順で作成したポリシーの名前) を入力します。次に、リスト内のその項目のチェックボックスをオンにします。

    4. 上記の 3 つのポリシーを追加したら、[ロールを作成] を選択します。

    注記

    AmazonSSMDirectoryServiceAccess は、 によってActive Directory管理される にインスタンスを結合するアクセス許可を提供します AWS Directory Service。AmazonSSMManagedInstanceCore は、 AWS Systems Manager サービスを使用するために必要な最小限のアクセス許可を提供します。これらのアクセス許可を使用してロールを作成する方法、および IAM ロールに割り当てることができるその他のアクセス許可とポリシーの詳細については、「AWS Systems Manager ユーザーガイド」の「Systems Manager の IAM インスタンスプロファイルを作成する」を参照してください。

  7. LinuxEC2DomainJoin[Role name] (ロール名)欄 に、 適宜の別の名前など 新しいロールの名前を入力します。

  8. (オプション) [Role description] (ロールの説明) に、説明を入力します。

  9. (オプション) [ステップ 3: タグの追加][新しいタグの追加] を選択してタグを追加します。タグのキーと値のペアは、このロールのアクセスを整理、追跡、または制御するために使用されます。

  10. [ロールの作成] を選択します。

Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD にシームレスに結合する Active Directory

すべての前提条件タスクを設定したので、次の手順に従い EC2 Linux インスタンスをシームレスに結合できます。

Linux インスタンスをシームレスに結合するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションバーのリージョンセレクターから、既存のディレクトリ AWS リージョン と同じ を選択します。

  3. [EC2 ダッシュボード] の [インスタンスを起動する] セクションで、[インスタンスを起動する] を選択します。

  4. [インスタンスを起動する] ページの [名前とタグ] セクションで、Linux EC2 インスタンスに使用する名前を入力します。

  5. (オプション) [補足タグを追加] で、タグとキーの値のペアを 1 つまたは複数追加して、この EC2 インスタンスのアクセスを整理、追跡、または制御します。

  6. Application and OS Image (Amazon Machine Image)セクションで、起動したいLinux AMIを選択します。

    注記

    使用する AMI には AWS Systems Manager 、 (SSM Agent) バージョン 2.3.1644.0 以降が必要です。その AMI からインスタンスを起動して AMI にインストールされている SSM Agent のバージョンを確認するには、「現在インストールされている SSM Agent バージョンを取得するには」を参照してください。SSM Agent をアップグレードする必要がある場合は、「Linux の EC2 インスタンスで SSM Agent をインストールして設定する」を参照してください。

    SSM は Linux インスタンスをActive Directoryドメインに結合するときにaws:domainJoinプラグインを使用します。プラグインは、Linux インスタンスのホスト名を EC2AMAZ-XXXXXXX の形式に変更します。aws:domainJoinの詳細については、[AWS Systems Manager ユーザーガイド]の「AWS Systems Manager コマンド・ドキュメント・プラグイン・リファレンス」を参照してください。

  7. [インスタンスタイプ] セクションで、[インスタンスタイプ] ドロップダウンリストから使用するインスタンスタイプを選択します。

  8. [キーペア (ログイン)] セクションで、新しいキーペアを作成するか、既存のキーペアから選択します。新しいキーペアを作成するには、[新しいキーペアの作成] を選択します。キーペアの名前を入力し、[キーペアタイプ] と [プライベートキーファイル形式] のオプションを選択します。OpenSSH で使用できる形式でプライベートキーを保存するには、[.pem] を選択します。プライベートキーを PuTTY で使用できる形式で保存するには、[.ppk] を選択します。[キーペアの作成] を選択します。ブラウザによって秘密キーファイルが自動的にダウンロードされます。ダウンロードしたプライベートキーのファイルを安全な場所に保存します。

    重要

    プライベートキーのファイルを保存できるのは、このタイミングだけです。

  9. [インスタンスを起動する] ページの [ネットワーク設定] セクションで、[編集] を選択します。[VPC に必須の] ドロップダウンリストから、ディレクトリが作成された [VPC] を選択します。

  10. [サブネット] ドロップダウンリストから VPC 内のパブリックサブネットの 1 つを選択します。選択するサブネットで、すべての外部トラフィックがインターネットゲートウェイにルーティングされるように選択する必要があります。そうでない場合は、インスタンスにリモート接続できません。

    インターネットゲートウェイへの接続方法の詳細については、Amazon VPC ユーザーガイドの「インターネットゲートウェイを使用してサブネットをインターネットに接続する」を参照してください。

  11. [自動割り当てパブリック IP] で、[有効化] を選択します。

    パブリック IP アドレス指定とプライベート IP アドレス指定の詳細については、Amazon EC2 ユーザーガイド」の「Amazon EC2 インスタンス IP アドレス指定Amazon EC2」を参照してください。

  12. [ファイアウォール (セキュリティグループ)] 設定にはデフォルト設定を使用するか、必要に応じて変更を加えることができます。

  13. [ストレージの設定] 設定にはデフォルト設定を使用するか、必要に応じて変更を加えることができます。

  14. [高度な詳細] セクションを選択し、[ドメイン結合ディレクトリ] ドロップダウンリストからドメインを選択します。

    注記

    ドメイン結合ディレクトリを選択すると、以下が表示されることがあります。

    ドメイン結合ディレクトリを選択したときのエラーメッセージ。既存の SSM ドキュメントにエラーがあります。

    このエラーは、EC2 起動ウィザードが予期しないプロパティを持つ既存の SSM ドキュメントを識別した場合に発生します。次のいずれかを試すことができます。

    • 以前に SSM ドキュメントを編集し、プロパティが想定されている場合は、閉じるを選択して EC2 インスタンスを起動します。変更はありません。

    • 既存の SSM ドキュメントを削除するリンクを選択して、SSM ドキュメントを削除します。これにより、正しいプロパティを持つ SSM ドキュメントを作成できます。EC2 インスタンスを起動すると、SSM ドキュメントが自動的に作成されます。

  15. IAM インスタンスプロファイル で、「前提条件」セクションの「ステップ 2: LinuxEC2DomainJoin role を作成する」で以前に作成した IAM ロールを選択します。

  16. [Launch instance (インスタンスの起動)] を選択します。

注記

SUSE Linux でシームレスなドメイン結合を実行する場合は、認証が機能する前に再起動する必要があります。Linux ターミナルから SUSE を再起動するには、「sudo reboot」と入力します。