翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory に手動で結合します。
Amazon EC2 Windowsインスタンスに加えて、特定の Amazon EC2 Linux インスタンスを AWS Managed Microsoft 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 ディストリビューションとバージョンも動作する可能性がありますが、まだテストされていません。
Linux インスタンスを AWS Managed Microsoft AD に結合する
Amazon Linux、CentOS、Red Hat、または Ubuntu インスタンスをディレクトリに結合するときは、先に、Linux インスタンスをシームレスに結合する で指定したとおりにインスタンスを起動する必要があります。
次の手順は、正しく実行しないと、インスタンスに到達不可能になったり、インスタンスが使用できなくなったりする可能性があります。したがって、これらの手順を実行する前に、バックアップを作成するか、インスタンスのスナップショットを作成することを強くお勧めします。
Linux インスタンスをディレクトリに結合するには
個々の Linux インスタンスについて、次のいずれかのタブの手順に従います。
- Amazon Linux
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
Directory Serviceが提供する DNS サーバーの DNS サーバーの IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS
ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Amazon Linux - 64 bit インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な Amazon Linux パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
- Amazon Linux
-
sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -U join_account@EXAMPLE.COM example.com --verbose
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication 設定を「yes」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers ファイルを開きます。
sudo visudo
-
次の内容を sudoers ファイルの下部に追加して保存します。
## Add the "AWS Delegated Administrators" group from the example.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
- CentOS
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
Directory Serviceが提供する DNS サーバーの DNS サーバーの IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS
ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
CentOS 7 インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な CentOS 7 パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -U join_account@example.com example.com --verbose
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication 設定を「yes」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers ファイルを開きます。
sudo visudo
-
次の内容を sudoers ファイルの下部に追加して保存します。
## Add the "AWS Delegated Administrators" group from the example.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
- Red Hat
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
Directory Serviceが提供する DNS サーバーの DNS サーバーの IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS
ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Red Hat - 64 bit インスタンスが最新であることを確認します。
sudo yum -y update
-
必要な Red Hat パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -v -U join_account example.com --install=/
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication 設定を「yes」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers ファイルを開きます。
sudo visudo
-
次の内容を sudoers ファイルの下部に追加して保存します。
## Add the "AWS Delegated Administrators" group from the example.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
- SUSE
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
Directory Serviceが提供する DNS サーバーの DNS サーバー IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定する場合は、 AWS ナレッジセンターの「How do I assign a static DNS server to a private Amazon EC2 instance」を参照して、特定の Linux ディストリビューションとバージョンの永続 DNS サーバーを設定する方法を確認してください。
-
SUSE Linux 15 インスタンスが最新であることを確認します。
-
パッケージリポジトリを接続します。
sudo SUSEConnect -p PackageHub/15.1/x86_64
-
SUSE を更新します。
sudo zypper update -y
-
必要な SUSE Linux 15 パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo zypper -n install realmd adcli sssd sssd-tools sssd-ad samba-client krb5-client
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -U join_account example.com --verbose
…
realm: Couldn't join realm: Enabling SSSD in nsswitch.conf and PAM failed.
次の両方の戻り値が想定されることに注意してください。
! Couldn't authenticate with keytab while discovering which salt to use:
! Enabling SSSD in nsswitch.conf and PAM failed.
-
SSSD を PAM で、手動で有効化します。
sudo pam-config --add --sss
-
nsswitch.conf を編集して nsswitch.conf の SSSD を有効にする
sudo vi /etc/nsswitch.conf
passwd: compat sss
group: compat sss
shadow: compat sss
-
/etc/pam.d/common-session に次の行を追加し、最初のログイン時にホームディレクトリを自動的に作成します。
sudo vi /etc/pam.d/common-session
session optional pam_mkhomedir.so skel=/etc/skel umask=077
-
インスタンスを再起動して、ドメイン結合プロセスを完了します。
sudo reboot
-
任意の SSH クライアントを使用してインスタンスに再接続し、ドメイン結合が正常に完了したことを確認し、追加の手順を完了します。
-
インスタンスがドメインに登録済みであることを確認するには
sudo realm list
example.com
type: kerberos
realm-name: EXAMPLE.COM
domain-name: example.com
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: adcli
required-package: samba-client
login-formats: %U@example.com
login-policy: allow-realm-logins
-
SSSD デーモンのステータスを確認するには
systemctl status sssd
sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-04-15 16:22:32 UTC; 3min 49s ago
Main PID: 479 (sssd)
Tasks: 4
CGroup: /system.slice/sssd.service
├─479 /usr/sbin/sssd -i --logger=files
├─505 /usr/lib/sssd/sssd_be --domain example.com --uid 0 --gid 0 --logger=files
├─548 /usr/lib/sssd/sssd_nss --uid 0 --gid 0 --logger=files
└─549 /usr/lib/sssd/sssd_pam --uid 0 --gid 0 --logger=files
-
SSH とコンソールを介したアクセスをユーザーに許可するには
sudo realm permit join_account@example.com
SSH とコンソールを介したアクセスをドメイングループに許可するには
sudo realm permit -g 'AWS Delegated Administrators'
または、すべてのユーザーにアクセスを許可するには
sudo realm permit --all
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication 設定を「yes」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
13. インスタンスが再起動したら、任意の SSH クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers ファイルを開きます。
sudo visudo
-
次の内容を sudoers ファイルの下部に追加して保存します。
## Add the "Domain Admins" group from the awsad.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL) NOPASSWD: ALL
- Ubuntu
-
-
任意の SSH クライアントを使用してインスタンスに接続します。
-
Directory Serviceが提供する DNS サーバーの DNS サーバーの IP アドレスを使用するように Linux インスタンスを設定します。これを行うには、VPC にアタッチされている DHCP オプションセットに設定するか、または手動でインスタンスに設定します。手動で設定するには、 AWS
ナレッジセンターの「プライベート Amazon EC2 インスタンスが Amazon Linux、Ubuntu、または RHEL で実行中です。再起動中も持続する EC2 インスタンスに静的 DNS サーバーを割り当てる方法を教えてください。」で、特定の Linux ディストリビューションとバージョンの永続的な DNS サーバーの設定に関するガイダンスを参照してください。
-
Ubuntu - 64 bit インスタンスが最新であることを確認します。
sudo apt-get update
sudo apt-get -y upgrade
-
必要な Ubuntu パッケージを Linux インスタンスにインストールします。
これらのパッケージの一部が既にインストールされている可能性があります。
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。
sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
-
逆引き DNS 解決を無効にし、デフォルトのレルムをドメインの FQDN に設定します。Ubuntu インスタンスは、レルムが稼働する前に DNS で逆引き解決可能になっている必要があります。なっていない場合、次のように /etc/krb5.conf で逆引き DNS を無効にする必要があります。
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
rdns = false
-
次のコマンドを使用してディレクトリにインスタンスを結合します。
sudo realm join -U join_account example.com --verbose
join_account@example.com
-
ドメイン結合権限を持つ example.com ドメインのアカウントの sAMAccountName。プロンプトが表示されたら、アカウントのパスワードを入力します。これらの権限の委任に関する詳細については、「AWS Managed Microsoft AD のディレクトリ結合権限を委任する」を参照してください。
example.com
-
ディレクトリの完全修飾 DNS 名です。
...
* Successfully enrolled machine in realm
-
SSH サービスを設定して、パスワード認証を許可します。
-
テキストエディタで /etc/ssh/sshd_config ファイルを開きます。
sudo vi /etc/ssh/sshd_config
-
PasswordAuthentication 設定を「yes」に設定します。
PasswordAuthentication yes
-
SSH サービスを再起動します。
sudo systemctl restart sshd.service
または:
sudo service sshd restart
-
インスタンスが再起動したら、任意の SSH クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。
-
次のコマンドを使用して sudoers ファイルを開きます。
sudo visudo
-
次の内容を sudoers ファイルの下部に追加して保存します。
## Add the "AWS Delegated Administrators" group from the example.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
(上の例では「\<space>」を使用して Linux スペース文字を作成しています)。
アカウントのログインアクセスの制限
デフォルトでは、すべてのアカウントは Active Directory で定義されているため、ディレクトリのすべてのユーザーがインスタンスにログインできます。sssd.conf の ad_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
デフォルトでは、すべてのアカウントは Active Directory で定義されているため、ディレクトリのすべてのユーザーがインスタンスにログインできます。sssd.conf の ad_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 間の統一されたエクスペリエンスを維持できます。これらのメソッドは次のとおりです。
Active Directory での集中型ユーザ ID マッピングには、ポータブルオペレーティングシステムインターフェイス (POSIX) が必要です。
一元化されたユーザ ID マッピング
Active Directory または別のLDAP (LDAP) サービスは Linux ユーザーに UID と GID を提供します。Active Directory では、POSIX 拡張機能が設定されている場合、これらの識別子はユーザーの属性に保存されます。
アクティブディレクトリの UID と GID を使用するように Linux インスタンスを設定するには、ldap_id_mapping = False sssd.conf ファイルに設定します。この値を設定する前に、UID、UID 番号、および GID 番号が Active Directory 内のユーザーとグループに追加されていることを確認してください。
分散型ユーザー ID マッピング
Active Directory に POSIX 拡張がない場合や、ID マッピングを一元的に管理しないことを選択した場合、Linux は UID と GID の値を計算できます。Linux はユーザー固有のセキュリティ識別子 (SID) を使用して一貫性を保ちます。
分散ユーザー ID マッピングを設定するには、ldap_id_mapping = True sssd.conf ファイルで設定します。
一般的な問題
を設定するとldap_id_mapping = False、SSSD サービスの開始が失敗することがあります。この失敗の理由は、UIDsの変更がサポートされていないためです。ID マッピングから POSIX 属性、または POSIX 属性から ID マッピングに変更するたびに、SSSD キャッシュを削除することをお勧めします。ID マッピングと ldap_id_mapping パラメータの詳細については、Linux コマンドラインで sssd-ldap(8) man ページを参照してください。
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%