Amazon EC2 Linux インスタンスを Simple AD Active Directory に手動で結合する - AWS Directory Service

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

Amazon EC2 Linux インスタンスを Simple AD Active Directory に手動で結合する

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. AWS Directory Serviceが提供するDNSサーバーのサーバー IP アドレスを使用するように Linux インスタンスを設定しますDNS。これを行うには、 にアタッチされたDHCPオプションセットで設定するか、インスタンスで手動でVPC設定します。手動で設定する場合は、 ナレッジセンターの「プライベート Amazon EC2インスタンスに静的DNSサーバーを割り当てる方法」を参照して、 AWS 特定の 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 バージョンを決定する方法については、「Linux インスタンス用 Amazon ユーザーガイド」の「Amazon Linux イメージの識別」を参照してください。 EC2

  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サーバーのサーバー IP アドレスを使用するように Linux インスタンスを設定しますDNS。これを行うには、 にアタッチされたDHCPオプションセットで設定するか、インスタンスで手動でVPC設定します。手動で設定する場合は、 ナレッジセンターの AWS 「プライベート Amazon 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サーバーのサーバー IP アドレスを使用するように Linux インスタンスを設定しますDNS。これを行うには、 にアタッチされたDHCPオプションセットで設定するか、インスタンスで手動でVPC設定します。手動で設定する場合は、 ナレッジセンターの AWS 「プライベート Amazon 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

    のアカウントsAMAccountの名前 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 スペース文字を作成しています)。

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

  2. AWS Directory Serviceが提供するDNSサーバーのサーバー IP アドレスを使用するように Linux インスタンスを設定しますDNS。これを行うには、 にアタッチされたDHCPオプションセットで設定するか、インスタンスで手動でVPC設定します。手動で設定する場合は、 ナレッジセンターの「プライベート Amazon EC2インスタンスに静的DNSサーバーを割り当てる方法」を参照して、 AWS 特定の 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。領域が機能DNSする前に、Ubuntu インスタンスは で逆解決可能である必要があります。それ以外の場合は、次のように /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

    のアカウントsAMAccountの名前 example.com ドメイン結合権限を持つ ドメイン。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「のディレクトリ結合権限を委任する 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 およびActive Directoryセキュリティ識別子 (SID) の ID 間の統一されたエクスペリエンスを維持できます。

  1. 一元化

  2. 分散型

注記

の一元化されたユーザー ID マッピングには、ポータブルオペレーティングシステムインターフェイス または Active Directoryが必要ですPOSIX。

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

Active Directory または別の Lightweight Directory Access Protocol (LDAP) サービスが Linux ユーザーに UIDと GID を提供します。ではActive Directory、これらの識別子はユーザーの属性に保存されます。

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

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

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

GID から UIDおよび を使用するように 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%