

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

# Winbind を使用して Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory に手動で結合する
<a name="join_linux_instance_winbind"></a>

Winbind サービスを使用して、Amazon EC2Linux インスタンスを ‭ AWS ‬ Managed Microsoft AD ドメインに手動で結合できます。これにより、既存のオンプレミス Active Directory ユーザーは、 AWS Managed Microsoft AD Active Directory に参加している Linux インスタンスにアクセスするときに 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 ディストリビューションとバージョンも動作する可能性がありますが、まだテストされていません。

## Linux インスタンスを AWS Managed Microsoft AD Active Directory に結合する
<a name="join_linux_winbind_prereq"></a>

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

**Linux インスタンスをディレクトリに結合するには**  
個々の Linux インスタンスについて、次のいずれかのタブの手順に従います。

------
#### [ Amazon Linux/CENTOS/REDHAT ]<a name="amazonlinux"></a>

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

1.  Directory Serviceが提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定する場合は、 AWS ナレッジセンターの「How [do I assign a static DNS server to a private Amazon EC2 instance](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-static-dns-ubuntu-debian/)」を参照して、特定の Linux ディストリビューションとバージョンの永続 DNS サーバーを設定する方法を確認してください。

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

   ```
   sudo yum -y update
   ```

1. 必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。

   ```
   sudo yum -y install authconfig samba samba-client samba-winbind samba-winbind-clients
   ```

1. 障害が発生した場合に元に戻せるよう、メインの `smb.conf` ファイルのバックアップを作成します。

   ```
   sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
   ```

1. 元の設定ファイル [`/etc/samba/smb.conf`] をテキストエディタで開きます。

   ```
   sudo vim /etc/samba/smb.conf
   ```

   次の例に示すように、Active Directory ドメイン環境情報を入力します。

   ```
   [global]
    workgroup = example
    security = ads
    realm = example.com
    idmap config * : rangesize = 1000000
    idmap config * : range = 1000000-19999999
    idmap config * : backend = autorid
    winbind enum users = no
    winbind enum groups = no
    template homedir = /home/%U@%D
    template shell = /bin/bash
    winbind use default domain = false
   ```

1. テキストエディタでホストファイル [`/etc/hosts`] を開きます。

   ```
   sudo vim /etc/hosts
   ```

   Linux インスタンスのプライベート IP アドレスを次のように追加します。

   ```
   10.x.x.x  Linux_hostname.example.com Linux_hostname
   ```
**注記**  
`/etc/hosts` ファイルで IP アドレスを指定しなかった場合、インスタンスをドメインに結合しているときに次の DNS エラーが発生することがあります。  
`No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER`  
このエラーは、結合は成功したが、[net ads] コマンドが DNS レコードを DNS に登録できなかったことを意味します。

1. net ユーティリティを使用して Linux インスタンスを Active Directory に結合します。

   ```
   sudo net ads join -U join_account@example.com
   ```  
*join\$1account@example.com*  
ドメイン結合権限を持つ *example.com* ドメインのアカウント。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「[AWS Managed Microsoft AD のディレクトリ結合権限の委任](directory_join_privileges.md)」を参照してください。  
*example.com*  
ディレクトリの完全修飾 DNS 名です。

   ```
   Enter join_account@example.com's password:
   Using short domain name -- example
   Joined 'IP-10-x-x-x' to dns domain 'example.com'
   ```

1. PAM 設定ファイルを変更します。以下のコマンドを使用して、winbind 認証に必要なエントリを追加します。

   ```
   sudo authconfig --enablewinbind --enablewinbindauth  --enablemkhomedir   --update
   ```

1. `/etc/ssh/sshd_config` ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。

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

      ```
      sudo vi /etc/ssh/sshd_config
      ```

   1. `PasswordAuthentication` 設定を「`yes`」に設定します。

      ```
      PasswordAuthentication yes
      ```

   1. SSH サービスを再起動します。

      ```
      sudo systemctl restart sshd.service
      ```

      または:

      ```
      sudo service sshd restart
      ```

1. インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

   1. 信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。

      ```
      ## Adding Domain Users/Groups.
      %domainname\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
      %domainname\\groupname ALL=(ALL:ALL) ALL
      domainname\\username ALL=(ALL:ALL) ALL
      %Trusted_DomainName\\groupname ALL=(ALL:ALL) ALL
      Trusted_DomainName\\username ALL=(ALL:ALL) ALL
      ```

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

------
#### [ SUSE ]<a name="suse"></a>

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

1.  Directory Serviceが提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定する場合は、 AWS ナレッジセンターの「How [do I assign a static DNS server to a private Amazon EC2 instance](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-static-dns-ubuntu-debian/)」を参照して、特定の Linux ディストリビューションとバージョンの永続 DNS サーバーを設定する方法を確認してください。

1. SUSE Linux 15 インスタンスが最新であることを確認します。

   1. パッケージリポジトリを接続します。

      ```
      sudo SUSEConnect -p PackageHub/15.1/x86_64
      ```

   1. SUSE を更新します。

      ```
      sudo zypper update -y
      ```

1. 必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。

   ```
   sudo zypper in -y samba samba-winbind
   ```

1. 障害が発生した場合に元に戻せるよう、メインの `smb.conf` ファイルのバックアップを作成します。

   ```
   sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
   ```

1. 元の設定ファイル [`/etc/samba/smb.conf`] をテキストエディタで開きます。

   ```
   sudo vim /etc/samba/smb.conf
   ```

   次の例に示すように、Active Directory ドメイン環境情報を入力します。

   ```
   [global]
    workgroup = example
    security = ads
    realm = example.com
    idmap config * : rangesize = 1000000
    idmap config * : range = 1000000-19999999
    idmap config * : backend = autorid
    winbind enum users = no
    winbind enum groups = no
    template homedir = /home/%U@%D
    template shell = /bin/bash
    winbind use default domain = false
   ```

1. テキストエディタでホストファイル [`/etc/hosts`] を開きます。

   ```
   sudo vim /etc/hosts
   ```

   Linux インスタンスのプライベート IP アドレスを次のように追加します。

   ```
   10.x.x.x  Linux_hostname.example.com Linux_hostname
   ```
**注記**  
`/etc/hosts` ファイルで IP アドレスを指定しなかった場合、インスタンスをドメインに結合しているときに次の DNS エラーが発生することがあります。  
`No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER`  
このエラーは、結合は成功したが、[net ads] コマンドが DNS レコードを DNS に登録できなかったことを意味します。

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

   ```
   sudo net ads join -U join_account@example.com
   ```  
*join\$1account*  
ドメイン結合権限を持つ *example.com* ドメインの sAMAccountName。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「[AWS Managed Microsoft AD のディレクトリ結合権限の委任](directory_join_privileges.md)」を参照してください。  
*example.com*  
ディレクトリの完全修飾 DNS 名です。

   ```
   Enter join_account@example.com's password:
   Using short domain name -- example
   Joined 'IP-10-x-x-x' to dns domain 'example.com'
   ```

1. PAM 設定ファイルを変更します。以下のコマンドを使用して、Winbind 認証に必要なエントリを追加します。

   ```
   sudo pam-config --add --winbind --mkhomedir
   ```

1. Name Service Switch 設定ファイル [`/etc/nsswitch.conf`] をテキストエディタで開きます。

   ```
   vim /etc/nsswitch.conf
   ```

   以下に示すように Winbind ディレクティブを追加します。

   ```
   passwd: files winbind
   shadow: files winbind
   group:  files winbind
   ```

1. `/etc/ssh/sshd_config` ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。

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

      ```
      sudo vim /etc/ssh/sshd_config
      ```

   1. `PasswordAuthentication` 設定を「`yes`」に設定します。

      ```
      PasswordAuthentication yes
      ```

   1. SSH サービスを再起動します。

      ```
      sudo systemctl restart sshd.service
      ```

      または:

      ```
      sudo service sshd restart
      ```

1. インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

   1. 信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。

      ```
      ## Adding Domain Users/Groups.
      %domainname\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
      %domainname\\groupname ALL=(ALL:ALL) ALL
      domainname\\username ALL=(ALL:ALL) ALL
      %Trusted_DomainName\\groupname ALL=(ALL:ALL) ALL
      Trusted_DomainName\\username ALL=(ALL:ALL) ALL
      ```

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

------
#### [ Ubuntu ]<a name="ubuntu"></a>

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

1.  Directory Serviceが提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定する場合は、 AWS ナレッジセンターの「How [do I assign a static DNS server to a private Amazon EC2 instance](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-static-dns-ubuntu-debian/)」を参照して、特定の Linux ディストリビューションとバージョンの永続 DNS サーバーを設定する方法を確認してください。

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

   ```
   sudo apt-get -y upgrade
   ```

1. 必要な Samba / Winbind パッケージを Linux インスタンスにインストールします。

   ```
   sudo apt -y install samba winbind libnss-winbind libpam-winbind
   ```

1. 障害が発生した場合に元に戻せるよう、メインの `smb.conf` ファイルのバックアップを作成します。

   ```
   sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
   ```

1. 元の設定ファイル [`/etc/samba/smb.conf`] をテキストエディタで開きます。

   ```
   sudo vim /etc/samba/smb.conf
   ```

   次の例に示すように、Active Directory ドメイン環境情報を入力します。

   ```
   [global]
    workgroup = example
    security = ads
    realm = example.com
    idmap config * : rangesize = 1000000
    idmap config * : range = 1000000-19999999
    idmap config * : backend = autorid
    winbind enum users = no
    winbind enum groups = no
    template homedir = /home/%U@%D
    template shell = /bin/bash
    winbind use default domain = false
   ```

1. テキストエディタでホストファイル [`/etc/hosts`] を開きます。

   ```
   sudo vim /etc/hosts
   ```

   Linux インスタンスのプライベート IP アドレスを次のように追加します。

   ```
   10.x.x.x  Linux_hostname.example.com Linux_hostname
   ```
**注記**  
`/etc/hosts` ファイルで IP アドレスを指定しなかった場合、インスタンスをドメインに結合しているときに次の DNS エラーが発生することがあります。  
`No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER`  
このエラーは、結合は成功したが、[net ads] コマンドが DNS レコードを DNS に登録できなかったことを意味します。

1. net ユーティリティを使用して Linux インスタンスを Active Directory に結合します。

   ```
   sudo net ads join -U join_account@example.com
   ```  
*join\$1account@example.com*  
ドメイン結合権限を持つ *example.com* ドメインのアカウント。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「[AWS Managed Microsoft AD のディレクトリ結合権限の委任](directory_join_privileges.md)」を参照してください。  
*example.com*  
ディレクトリの完全修飾 DNS 名です。

   ```
   Enter join_account@example.com's password:
   Using short domain name -- example
   Joined 'IP-10-x-x-x' to dns domain 'example.com'
   ```

1. PAM 設定ファイルを変更します。以下のコマンドを使用して、Winbind 認証に必要なエントリを追加します。

   ```
   sudo pam-auth-update --add --winbind --enable mkhomedir
   ```

1. Name Service Switch 設定ファイル [`/etc/nsswitch.conf`] をテキストエディタで開きます。

   ```
   vim /etc/nsswitch.conf
   ```

   以下に示すように Winbind ディレクティブを追加します。

   ```
   passwd: compat winbind
   group:  compat winbind
   shadow: compat winbind
   ```

1. `/etc/ssh/sshd_config` ファイルを編集して、SSH サービスを設定し、パスワード認証を許可します。

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

      ```
      sudo vim /etc/ssh/sshd_config
      ```

   1. `PasswordAuthentication` 設定を「`yes`」に設定します。

      ```
      PasswordAuthentication yes
      ```

   1. SSH サービスを再起動します。

      ```
      sudo systemctl restart sshd.service
      ```

      または:

      ```
      sudo service sshd restart
      ```

1. インスタンスが再起動したら、任意の SSH クライアントを使用してこれに接続し、次の手順を実行してドメインユーザーまたはグループのルート権限を sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

   1. 信頼するドメインまたは信頼されたドメインから必要なグループまたはユーザーを次のように追加し、保存します。

      ```
      ## Adding Domain Users/Groups.
      %domainname\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
      %domainname\\groupname ALL=(ALL:ALL) ALL
      domainname\\username ALL=(ALL:ALL) ALL
      %Trusted_DomainName\\groupname ALL=(ALL:ALL) ALL
      Trusted_DomainName\\username ALL=(ALL:ALL) ALL
      ```

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

------

## Linux インスタンスへの接続
<a name="linux_winbind_connect"></a>

ユーザーの 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%
```