Amazon EC2 Linux AWS インスタンスをマネージド Microsoft AD アクティブディレクトリにシームレスに参加させる - AWS Directory Service

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

Amazon EC2 Linux AWS インスタンスをマネージド Microsoft AD アクティブディレクトリにシームレスに参加させる

この手順により、Amazon EC2 Linux AWS インスタンスがマネージド Microsoft AD アクティブディレクトリにシームレスに結合されます。 AWS 複数のアカウント間でシームレスなドメイン参加を行う必要がある場合は、オプションでディレクトリ共有を有効にすることができます

以下の 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 より前のディストリビューションでは、シームレスなドメイン結合機能はサポートされていません。

Linux AWS インスタンスを管理対象の Microsoft AD Active Directory にシームレスに参加させるプロセスのデモンストレーションについては、 YouTube 次のビデオを参照してください。

前提条件

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

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

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

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

$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 aws/secretsmanager が作成するマネージドキーを使用して、シークレットを無料で暗号化できます。シークレットを暗号化するために独自の KMS キーを作成した場合は、 AWS 現在のレートで課金されます。 AWS KMS 詳細については、「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 のシームレスドメイン参加シークレット (以前に作成した) への読み取り専用アクセスを許可するカスタムポリシーを作成し、新しい DomainJoin LinuxEC2 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 つのポリシーを作成することをお勧めします。そうすることで、インスタンスが適切なシークレットにのみアクセスできるようになり、インスタンスが侵害された場合の影響を最小限に抑えることができます。

DomainJoin Linux/EC2 ロールを作成します。

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

Linux EC2 ロールを作成するには DomainJoin
  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 コンソールの [信頼されたエンティティの選択] ページで。 AWS サービスと EC2 が選択されます。
  6. [Filter policies] (フィルターポリシー) で、以下を実行します。

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

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

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

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

    注記

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

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

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

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

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

Linux インスタンスをシームレスに結合する

すべての前提条件タスクを設定したので、次の手順に従い 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 エージェント) バージョン 2.3.1644.0 以降が必要です。その AMI からインスタンスを起動して AMI にインストールされている SSM Agent のバージョンを確認するには、「現在インストールされている SSM Agent バージョンを取得するには」を参照してください。SSM Agent をアップグレードする必要がある場合は、「Linux の EC2 インスタンスで SSM Agent をインストールして設定する」を参照してください。

    SSM は Linux aws:domainJoin インスタンスをドメインに参加させるときにプラグインを使用します。Active Directoryプラグインは、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 Windows インスタンス用ユーザーガイド」の「Amazon EC2 インスタンスの IP アドレス指定」を参照してください。

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

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

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

    注記

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

    
       ドメイン参加ディレクトリを選択するとエラー・メッセージが表示される。既存の SSM ドキュメントにエラーがあります。

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

    • SSM ドキュメントを以前に編集していて、プロパティが想定どおりである場合は、[close] を選択し、変更なしで EC2 インスタンスの起動に進みます。

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

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

  16. [インスタンスを起動] を選択します。

注記

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