Amazon EC2 Linux インスタンスをSimple AD アクティブディレクトリに手動で結合する - AWS Directory Service

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

Amazon EC2 Linux インスタンスをSimple AD アクティブディレクトリに手動で結合する

Amazon EC2 Windows インスタンスに加え、特定の Amazon EC2 Linux インスタンスを Simple AD Active Directoryに結合することもできます。以下の Linux インスタンスのディストリビューションおよびバージョンがサポートされています。

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64 ビット x86)

  • Amazon Linux 2023 AMI

  • 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

注記

他の Linux ディストリビューションとバージョンも動作する可能性がありますが、まだテストされていません。

前提条件

Amazon Linux、CentOS、Red Hat、または Ubuntu インスタンスをディレクトリに結合するときは、先に、Amazon EC2 Linux スタンスを Simple AD Active Directoryにシームレスに結合する で指定したとおりにインスタンスを起動する必要があります。

重要

次の手順は、正しく実行しないと、インスタンスに到達不可能になったり、インスタンスが使用できなくなったりする可能性があります。したがって、これらの手順を実行する前に、バックアップを作成するか、インスタンスのスナップショットを作成することを強くお勧めします。

Linux インスタンスをディレクトリに結合するには

個々の Linux インスタンスについて、次のいずれかのタブの手順に従います。

Amazon Linux
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. 提供された DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。 AWS Directory Serviceこれを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. Amazon Linux - 64 bit インスタンスが最新であることを確認します。

    sudo yum -y update
  4. 必要な Amazon Linux パッケージを Linux インスタンスにインストールします。

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    Amazon Linux
    sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
    注記

    使用している Amazon Linux のバージョンを確認する方法については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の 「Identifying Amazon Linux images」(Amazon Linux イメージの特定) を参照してください。

  5. 次のコマンドを使用してディレクトリにインスタンスを結合します。

    sudo realm join -U join_account@EXAMPLE.COM example.com --verbose
    join_account@EXAMPLE.COM

    ドメイン結合権限を持つ example.com ドメインのアカウント。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    ... * Successfully enrolled machine in realm
  6. SSH サービスを設定して、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  7. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

CentOS
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. AWS Directory Service提供された DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. CentOS 7 インスタンスが最新であることを確認します。

    sudo yum -y update
  4. 必要な CentOS 7 パッケージを Linux インスタンスにインストールします。

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. 次のコマンドを使用してディレクトリにインスタンスを結合します。

    sudo realm join -U join_account@example.com example.com --verbose
    join_account@example.com

    ドメイン結合権限を持つ example.com ドメインのアカウント。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    ... * Successfully enrolled machine in realm
  6. SSH サービスを設定して、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  7. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

Red hat
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. AWS Directory Service提供された DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. Red Hat - 64 bit インスタンスが最新であることを確認します。

    sudo yum -y update
  4. 必要な Red Hat パッケージを Linux インスタンスにインストールします。

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. 次のコマンドを使用してディレクトリにインスタンスを結合します。

    sudo realm join -v -U join_account example.com --install=/
    join_account

    AccountNameドメイン参加権限を持つ example.com ドメイン内のアカウントの SAM。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    ... * Successfully enrolled machine in realm
  6. SSH サービスを設定して、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  7. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

Ubuntu
  1. 任意の SSH クライアントを使用してインスタンスに接続します。

  2. AWS Directory Service提供された DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。

  3. Ubuntu - 64 bit インスタンスが最新であることを確認します。

    sudo apt-get update sudo apt-get -y upgrade
  4. 必要な Ubuntu パッケージを Linux インスタンスにインストールします。

    注記

    これらのパッケージの一部が既にインストールされている可能性があります。

    パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

    sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
  5. 逆引き DNS 解決を無効にし、デフォルトのレルムをドメインの FQDN に設定します。Ubuntu インスタンスは、レルムが稼働する前に DNS で逆引き解決可能になっている必要があります。なっていない場合、次のように /etc/krb5.conf で逆引き DNS を無効にする必要があります。

    sudo vi /etc/krb5.conf
    [libdefaults] default_realm = EXAMPLE.COM rdns = false
  6. 次のコマンドを使用してディレクトリにインスタンスを結合します。

    sudo realm join -U join_account example.com --verbose
    join_account@example.com

    AccountNameドメイン参加権限を持つ example.com ドメイン内のアカウントの SAM。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。

    example.com

    ディレクトリの完全修飾 DNS 名です。

    ... * Successfully enrolled machine in realm
  7. SSH サービスを設定して、パスワード認証を許可します。

    1. テキストエディタで /etc/ssh/sshd_config ファイルを開きます。

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 設定を「yes」に設定します。

      PasswordAuthentication yes
    3. SSH サービスを再起動します。

      sudo systemctl restart sshd.service

      または:

      sudo service sshd restart
  8. インスタンスが再起動したら、任意の SSH クライアントを使用して接続し、次の手順を実行してドメイン管理者グループを sudoers リストに追加します。

    1. 次のコマンドを使用して sudoers ファイルを開きます。

      sudo visudo
    2. 次の内容を sudoers ファイルの下部に追加して保存します。

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (上の例では「\<space>」を使用して Linux スペース文字を作成しています)。

注記

Simple AD の使用において、「最初のログイン時にユーザーにパスワードの変更を強制する」オプションを指定して Linux インスタンスのユーザーアカウントを作成する場合、そのユーザーは kpasswd を使用して初期のパスワード変更ができません。初めてパスワードを変更する場合、ドメイン管理者が Active Directory 管理ツールを使用してユーザーのパスワードを更新する必要があります。

Linux インスタンスからアカウントを管理する

Linux インスタンスから Simple AD のアカウントを管理するには、次に示すように、Linux インスタンスで特定の設定ファイルを更新する必要があります。

  1. /etc/sssd/sssd.conf ファイルで、krb5_use_kdcinfo を 「False 」に設定します。例:

    [domain/example.com] krb5_use_kdcinfo = False
  2. 設定を有効にするには、sssd サービスを再起動する必要があります。

    $ sudo systemctl restart sssd.service

    または、次のコマンドを使用できます。

    $ sudo service sssd start
  3. CentOS Linux インスタンスからユーザーを管理する場合は、次を含めるためにファイル /etc/smb.conf も編集する必要があります。

    [global] workgroup = EXAMPLE.COM realm = EXAMPLE.COM netbios name = EXAMPLE security = ads

アカウントのログインアクセスの制限

デフォルトでは、すべてのアカウントは Active Directory で定義されているため、ディレクトリのすべてのユーザーがインスタンスにログインできます。sssd.confad_access_filter を使用して、特定のユーザーのみにインスタンスへのログインを許可できます。例:

ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf

ユーザーは、特定のグループのメンバーである場合にのみ、インスタンスへのアクセスを許可されることを示しています。

cn

アクセス権限のあるグループの共通名。この例では、グループ名は、admins です。

ou

これは、上記のグループが配置される組織単位です。この例では、OU は、Testou です。

dc

これは、ドメインのドメインコンポーネントです。この例では、example です。

dc

これは、追加のドメインコンポーネントです。この例では、com です。

ad_access_filter を手動で /etc/sssd/sssd.conf に追加する必要があります。

テキストエディタで /etc/sssd/sssd.conf ファイルを開きます。

sudo vi /etc/sssd/sssd.conf

この操作を行った後、sssd.conf は次のようになります。

[sssd] domains = example.com config_file_version = 2 services = nss, pam [domain/example.com] ad_domain = example.com krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)

設定を有効にするには、sssd サービスを次のように再起動する必要があります。

sudo systemctl restart sssd.service

または、次のコマンドを使用できます。

sudo service sssd restart

ID マッピング

ID マッピングは 2 つの方法で実行でき、UNIX/Linux ユーザー識別子 (UID) とグループ識別子 (GID)、Windows ID、Active Directoryセキュリティ識別子 (SID) ID 間の統一されたエクスペリエンスを維持できます。

  1. 一元化

  2. 分散型

注記

での集中型ユーザ ID マッピングには、ポータブルオペレーティングシステムインターフェイス (POSIX) Active Directory が必要です。

一元化されたユーザ ID マッピング

Active Directoryまたは、Linux ユーザーに UID と GID を提供する別のライトウェイトディレクトリアクセスプロトコル (LDAP) サービスもあります。ではActive Directory、次の ID がユーザーの属性に保存されます。

  • UID-Linux ユーザー名 (文字列)

  • UID 番号-Linux ユーザー ID 番号 (整数)

  • GID 番号-Linux グループ ID 番号 (整数)

元の UID と GID を使用するように Linux インスタンスを設定するにはActive Directory、sssd.conf ファイルに設定しますldap_id_mapping = False。この値を設定する前に、UID、UID 番号、GID 番号が内のユーザーとグループに追加されていることを確認してください。Active Directory

分散型ユーザー ID マッピング

POSIX Active Directory 拡張がない場合や、ID マッピングを一元管理しないことを選択した場合、Linux は UID と GID の値を計算できます。Linux はユーザー固有のセキュリティ識別子 (SID) を使用して一貫性を保ちます。

分散ユーザー ID マッピングを設定するには、ldap_id_mapping = True sssd.conf ファイルで設定します。

Linux インスタンスへの接続

ユーザーの SSH クライアントを使用してインスタンスに接続し、ユーザー名の入力が求められます。ユーザーは、username@example.com または EXAMPLE\username のいずれかの形式でユーザー名を入力することができます。使用している Linux ディストリビューションに応じて、レスポンスは次のように表示されます。

Amazon Linux、Red Hat Enterprise Linux、および CentOS Linux

login as: johndoe@example.com johndoe@example.com's password: Last login: Thu Jun 25 16:26:28 2015 from XX.XX.XX.XX

SUSE Linux

SUSE Linux Enterprise Server 15 SP1 x86_64 (64-bit) As "root" (sudo or sudo -i) use the: - zypper command for package management - yast command for configuration management Management and Config: https://www.suse.com/suse-in-the-cloud-basics Documentation: https://www.suse.com/documentation/sles-15/ Forum: https://forums.suse.com/forumdisplay.php?93-SUSE-Public-Cloud Have a lot of fun...

Ubuntu Linux

login as: admin@example.com admin@example.com@10.24.34.0's password: Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1057-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Apr 18 22:03:35 UTC 2020 System load: 0.01 Processes: 102 Usage of /: 18.6% of 7.69GB Users logged in: 2 Memory usage: 16% IP address for eth0: 10.24.34.1 Swap usage: 0%