

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

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

EC2 Linux インスタンスを起動して、 の AWS Managed Microsoft AD に参加できます AWS マネジメントコンソール。EC2 Linux インスタンスを AWS Managed Microsoft AD に手動で結合することもできます。Winbind などのツールを使用して、EC2 Linux インスタンスを AWS Managed Microsoft AD にドメイン結合することもできます。

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

**Topics**
+ [

# Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory にシームレスに結合する
](seamlessly_join_linux_instance.md)
+ [

# Amazon EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合する
](seamlessly_join_linux_to_shared_MAD.md)
+ [

# Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory に手動で結合する
](join_linux_instance.md)
+ [

# Winbind を使用して Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory に手動で結合する
](join_linux_instance_winbind.md)

# Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory にシームレスに結合する
<a name="seamlessly_join_linux_instance"></a>

この手順では、Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory にシームレスに結合します。この手順を完了するには、追加コストが発生する可能性のある AWS Secrets Manager シークレットを作成する必要があります。詳細については、「[AWS Secrets Manager 料金](https://aws.amazon.com/secrets-manager/pricing/)」を参照してください。

複数の AWS アカウントでシームレスなドメイン結合を実行する必要がある場合は、オプションで[ディレクトリ共有](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_directory_sharing.html)を有効にするように選択できます。

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

Linux インスタンスを AWS Managed Microsoft AD Active Directoryにシームレスに結合するプロセスのデモについては、以下の YouTube ビデオを参照してください。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/NNUtdVVZVxU?si=_0zOiXhUObcW0_Wo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/NNUtdVVZVxU?si=_0zOiXhUObcW0_Wo)


## 前提条件
<a name="seamless-linux-prereqs"></a>

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

### シームレスなドメイン結合のためのネットワーク前提条件
<a name="linux-domain-join-networking-prereqs"></a>

EC2 Linux インスタンスをシームレスにドメイン結合するには、以下を完了する必要があります。
+ EC2 Linux インスタンスをシームレスに結合するには、次の IAM アクセス許可が必要です。
  +  AWS Managed Microsoft AD がある。詳細については[AWS Managed Microsoft AD の作成](ms_ad_getting_started.md#ms_ad_getting_started_create_directory)を参照してください。
  + EC2 Windows インスタンスをシームレスに結合するには、次の IAM アクセス許可が必要です。
    + 次の IAM アクセス許可を持つ IAM インスタンスプロファイル:
      + `AmazonSSMManagedInstanceCore`
      + `AmazonSSMDirectoryServiceAccess`
    + EC2 を AWS Managed Microsoft AD にシームレスに結合するユーザーには、次の IAM アクセス許可が必要です。
      + Directory Service アクセス許可:
        + `"ds:DescribeDirectories"`
        + `"ds:CreateComputer"`
      + Amazon VPC のアクセス許可:
        + `"ec2:DescribeVpcs"`
        + `"ec2:DescribeSubnets"`
        + `"ec2:DescribeNetworkInterfaces"`
        + `"ec2:CreateNetworkInterface"`
        + `"ec2:AttachNetworkInterface"`
      + EC2 アクセス許可:
        + `"ec2:DescribeInstances"`
        + `"ec2:DescribeImages"`
        + `"ec2:DescribeInstanceTypes"`
        + `"ec2:RunInstances"`
        + `"ec2:CreateTags"`
      + AWS Systems Manager アクセス許可:
        + `"ssm:DescribeInstanceInformation"`
        + `"ssm:SendCommand"`
        + `"ssm:GetCommandInvocation"`
        + `"ssm:CreateBatchAssociation"`
+  AWS Managed Microsoft AD が作成されると、インバウンドルールとアウトバウンドルールを使用してセキュリティグループが作成されます。これらのルールとポートの詳細については、「[AWS Managed Microsoft AD で作成される内容](ms_ad_getting_started_what_gets_created.md)」を参照してください。EC2 Linux インスタンスをシームレスにドメイン結合するには、インスタンスを起動する VPC で、 AWS Managed Microsoft AD セキュリティグループのインバウンドルールとアウトバウンドルールで許可されているのと同じポートを許可する必要があります。
  + ネットワークセキュリティとファイアウォールの設定によっては、追加のアウトバウンドトラフィックを許可する必要がある場合があります。このトラフィックは、次のエンドポイントへの HTTPS (ポート 443) 用です。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/seamlessly_join_linux_instance.html)
+  AWS Managed Microsoft AD ドメイン名を解決する DNS サーバーを使用することをお勧めします。そのためには、DHCP オプションセットを作成できます。詳細については「[AWS Managed Microsoft AD の DHCP オプションセットの作成または変更](dhcp_options_set.md)」を参照してください。
  + DHCP オプションセットを作成しない場合、DNS サーバーは静的になり、 AWS Managed Microsoft AD によって に設定されます。

### シームレスなドメイン結合のサービスアカウントを選択する
<a name="seamless-linux-prereqs-select"></a>

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

コンピュータをドメインに結合するために必要な最小限の権限をアカウントに委任するには、次の PowerShell コマンドを実行します。これらのコマンドは、ドメインに結合され、[AWS Managed Microsoft AD 用の Active Directory 管理ツールのインストール](ms_ad_install_ad_tools.md) がインストールされている 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) を使用する場合は、[権限をサービスアカウントに委任する](ad_connector_getting_started.md#connect_delegate_privileges) で説明している手動プロセスを使用できます。

### ドメインサービスアカウントを保存するシークレットを作成する
<a name="-create-secrets"></a>

 AWS Secrets Manager を使用してドメインサービスアカウントを保存できます。詳細については、[「 AWS Secrets Manager シークレットの作成](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)」を参照してください。

**注記**  
Secrets Manager には料金がかかります。詳細については、「*AWS Secrets Manager ガイド*」の「[料金](https://docs.aws.amazon.com//secretsmanager/latest/userguide/intro.html#asm_pricing)」を参照してください。

**ドメインサービスアカウントの情報を保存するシークレットを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) で AWS Secrets Manager コンソールを開きます。

1. **[Store a new secret]** (新しいシークレットの保存) を選択します。

1. **[Store a new secret]** (新しいシークレットを保存する) のページで、次の操作を行います：

   1. **[シークレットのタイプ]** で、**[その他のシークレットのタイプ]** を選択します。

   1. **[Key/value pairs]** (キー/値ペア) で、次のように実行します。

      1. 最初のボックスに **awsSeamlessDomainUsername** と入力します。同じ行の次のボックスに、サービスアカウントのユーザー名を入力します。例えば、以前に PowerShell コマンドを使用した場合、サービスアカウント名は **awsSeamlessDomain** になります。
**注記**  
**awsSeamlessDomainUsername** を正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。  
![\[の AWS Secrets Manager コンソールでシークレットタイプを選択します。awsSeamlessDomainUsernameシークレットタイプで他のタイプのシークレットが選択され、キー値として入力されます。\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/images/secrets_manager_1.png)

      1. **[Add row]** (行の追加) を選択します。

      1. 新しい行で、最初のボックスに **awsSeamlessDomainPassword** と入力します。同じ行の次のボックスに、サービスアカウントのパスワードを入力します。
**注記**  
**awsSeamlessDomainPassword** を正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

      1. **暗号化キー**の下で、デフォルト値`aws/secretsmanager`のままにしておきます。 このオプションを選択すると、 AWS Secrets Manager は常に秘密を暗号化します。自身で作成したキーを選択することもできます。

      1. [**次へ**] を選択します。

1. **[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 コンソールで。シークレット名が入力され、強調表示されます。\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/images/secrets_manager_2.png)

1. それ以外はすべてデフォルトのままにして、**[Next]** (次へ) をクリックします。

1. **[Configure automatic rotation]** (自動ローテーションを設定) で **[Disable automatic rotation]** (自動ローテーションを無効にする) を選択し、**[Next]** (次へ) をクリックします。

   このシークレットの保存後にローテーションを有効にすることができます。

1. 設定を確認し、**[Store]** (保存) をクリックして変更を保存します。Secrets Manager コンソールがアカウントのシークレットリストに戻ります。リストには、新しいシークレットが追加されています。

1. 新しく作成したシークレット名をリストから選択し、**[Secret ARN]** (シークレット ARN) 値をメモします。これは次のセクションで必要になります。

### ドメインサービスアカウントシークレットのローテーションを有効にする
<a name="seamless-linux-prereqs-turn-on-rotation"></a>

セキュリティ体制を改善するために、シークレットを定期的にローテーションすることをお勧めします。

**ドメインサービスアカウントシークレットのローテーションを有効にするには**
+ 「 *AWS Secrets Manager ユーザーガイド*」の「シー[AWS Secrets Manager クレットの自動ローテーションを設定する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_turn-on-for-other.html)」の手順に従います。

  ステップ 5 では、「*AWS Secrets Manager ユーザーガイド*」のローテーションテンプレート「[Microsoft Active Directory 認証情報](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#template-AD-password)」を使用します。

  ヘルプについては、「 *AWS Secrets Manager ユーザーガイド*[」の「ロー AWS Secrets Manager テーションのトラブルシューティング](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html)」を参照してください。

### 必要な IAM ポリシーとロールを作成する
<a name="seamless-linux-prereqs-create-policy"></a>

次の前提条件の手順に従い、Secrets Manager のシームレスなドメイン結合シークレット (先ほど作成したもの) への読み取り専用アクセスを許可するカスタムポリシーを作成し、新しい LinuxEC2DomainJoin IAM ロールを作成します。

#### Secrets Manager の IAM 読み取りポリシーを作成する
<a name="seamless-linux-prereqs-create-policy-step1"></a>

IAM コンソールを使用して、Secrets Manager シークレットへの読み取り専用アクセスを許可するポリシーを作成します。

**Secrets Manager の IAM 読み取りポリシーを作成するには**

1. IAM ポリシーを作成する権限を持つユーザー AWS マネジメントコンソール として にサインインします。次に、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインの **[アクセス管理]** で、**[ポリシー]** を選択します。

1. **[Create policy]** (ポリシーの作成) を選択します。

1. [**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"
               ]
           }
       ]
   }
   ```

1. 完了したら、[**Next**] を選択します。構文エラーがある場合は、Policy Validator によってレポートされます。詳細については、「[IAM ポリシーの検証](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html)」を参照してください。

1. **[Review policy]** (ポリシーの確認) ページで、ポリシー名を入力します (**SM-Secret-Linux-DJ-*d-xxxxxxxxxx*-Read** など)。**[Summary]** (概要) セクションで、ポリシーで付与されているアクセス許可を確認します。**[Create Policy]** (ポリシーの作成) をクリックし、変更を保存します。新しいポリシーが管理ポリシーのリストに表示されます。これで ID にアタッチする準備は完了です。

**注記**  
シークレットごとに 1 つのポリシーを作成することをお勧めします。そうすることで、インスタンスが適切なシークレットにのみアクセスできるようになり、インスタンスが侵害された場合の影響を最小限に抑えることができます。

#### LinuxEC2DomainJoin ロールを作成する
<a name="seamless-linux-prereqs-create-policy-step2"></a>

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

**LinuxEC2DomainJoin ロールを作成するには**

1. IAM ポリシーを作成する権限を持つユーザー AWS マネジメントコンソール として にサインインします。次に、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインの **[Access Management]** (アクセス管理) で、**[Roles]** (ロール) を選択します。

1. コンテンツペインで、**[Create role]** (ロールの作成) を選択します。

1. [**Select type of trusted entity**] (信頼されたエンティティの種類を選択) の下で、[**AWS Service**] を選択します。

1. **[Use case]** (ユースケース) で **EC2** を選択し、**[Next]** (次へ) を選択します。  
![\[Select trusted entity page. AWS service の IAM コンソールで、EC2 が選択されます。\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/images/iam-console-trusted-entity.png)

1. **[Filter policies]** (フィルターポリシー) で、以下を実行します。

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

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

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

   1. 上記の 3 つのポリシーを追加したら、**[ロールを作成]** を選択します。
**注記**  
[AmazonSSMDirectoryServiceAccess] により、 Directory Serviceで管理されている Active Directory にインスタンスを結合するためのアクセス許可が付与されます。AmazonSSMManagedInstanceCore は、 AWS Systems Manager サービスを使用するために必要な最小限のアクセス許可を提供します。これらのアクセス許可を使用してロールを作成する方法、および IAM ロールに割り当てることができるその他のアクセス許可とポリシーの詳細については、「*AWS Systems Manager ユーザーガイド*」の「[Systems Manager の IAM インスタンスプロファイルを作成する](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)」を参照してください。

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

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

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

1. [**ロールの作成**] を選択してください。

## Linux インスタンスをシームレスに結合する
<a name="seamless-linux-join-instance"></a>

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

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. ナビゲーションバーのリージョンセレクターから、既存のディレクトリ AWS リージョン と同じ を選択します。

1. [**EC2 ダッシュボード**] の [**インスタンスを起動する**] セクションで、[**インスタンスを起動する**] を選択します。

1. **[インスタンスを起動する]** ページの **[名前とタグ]** セクションで、Linux EC2 インスタンスに使用する名前を入力します。

1.  (選択可能) **[補足タグを追加]** で、タグとキーの値のペアを 1 つまたは複数追加して、この EC2 インスタンスのアクセスを整理、追跡、またはコントロールします。**

1. **Application and OS Image (Amazon Machine Image)**セクションで、起動したいLinux AMIを選択します。
**注記**  
使用する AMI には AWS Systems Manager 、(SSM Agent) バージョン 2.3.1644.0 以降が必要です。その AMI からインスタンスを起動して AMI にインストールされている SSM Agent のバージョンを確認するには、「[現在インストールされている SSM Agent バージョンを取得するには](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-get-version.html)」を参照してください。SSM Agent をアップグレードする必要がある場合は、「[Linux の EC2 インスタンスで SSM Agent をインストールして設定する](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html)」を参照してください。  
SSM は Linux インスタンスを Active Directory `aws:domainJoin` ドメインに参加させる際にプラグインを使用します。プラグインは、Linux インスタンスのホスト名を EC2AMAZ-*XXXXXXX* の形式に変更します。`aws:domainJoin` の詳細については、「*AWS Systems Manager ユーザーガイド*」の「[AWS Systems Manager コマンドドキュメントプラグインリファレンス](https://docs.aws.amazon.com//systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-domainJoin)」を参照してください。

1. [**インスタンスタイプ**] セクションで、[**インスタンスタイプ**] ドロップダウンリストから使用するインスタンスタイプを選択します。

1. [**キーペア (ログイン)**] セクションで、新しいキーペアを作成するか、既存のキーペアから選択します。新しいキーペアを作成するには、[**新しいキーペアの作成**] を選択します。キーペアの名前を入力し、[**キーペアタイプ**] と [**プライベートキーファイル形式**] のオプションを選択します。OpenSSH で使用できる形式でプライベートキーを保存するには、[**.pem**] を選択します。プライベートキーを PuTTY で使用できる形式で保存するには、[**.ppk**] を選択します。[**キーペアの作成**] を選択します。ブラウザによって秘密キーファイルが自動的にダウンロードされます。ダウンロードしたプライベートキーのファイルを安全な場所に保存します。
**重要**  
プライベートキーのファイルを保存できるのはこのタイミングだけです。

1. [**インスタンスを起動する**] ページの [**ネットワーク設定**] セクションで、[**編集**] を選択します。**[VPC - *必須*]** ドロップダウンリストから、ディレクトリが作成された **[VPC]** を選択します。

1. [**サブネット**] ドロップダウンリストから VPC 内のパブリックサブネットの 1 つを選択します。選択するサブネットで、すべての外部トラフィックがインターネットゲートウェイにルーティングされるように選択する必要があります。そうでない場合は、インスタンスにリモート接続できません。

   インターネットゲートウェイへの接続方法の詳細については、「*Amazon VPC User Guide*」の「[Connect to the internet using an internet gateway](https://docs.aws.amazon.com//vpc/latest/userguide/VPC_Internet_Gateway.html)」を参照してください。

1. [**自動割り当てパブリック IP**] で、[**有効化**] を選択します。

   公開 IP アドレス指定とプライベート IP アドレス指定の詳細については、「Amazon EC2 インスタンスユーザーガイド」の「[Amazon EC2 インスタンスの IP アドレス指定](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-instance-addressing.html)」を参照してください。**

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

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

1. [**高度な詳細**] セクションを選択し、[**ドメイン結合ディレクトリ**] ドロップダウンリストからドメインを選択します。
**注記**  
ドメイン結合ディレクトリを選択すると、次のようになります:   

![\[ドメイン結合ディレクトリを選択したときのエラーメッセージ。既存の SSM ドキュメントにエラーがあります。\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/images/SSM-Error-Message.png)

このエラーは、EC2 起動ウィザードが予期しないプロパティを持つ既存の SSM ドキュメントを識別した場合に発生します。次のいずれかを試すことができます。  
以前に SSM ドキュメントを編集し、プロパティの存在が予想される場合は、[閉じる] を選択して EC2 インスタンスを変更せずに起動します。
ここで既存の SSM ドキュメントを削除するリンクを選択して、SSM ドキュメントを削除します。これにより、正しいプロパティを使用する SSM ドキュメントを作成できます。EC2 インスタンスを起動すると、SSM ドキュメントが自動的に作成されます。

1. **[IAMインスタンスプロファイル]**には、前提条件のセクションで以前に作成したIAMロールを選択します **[ステップ2：LinuxEC2DomainJoinロールを作成します]**

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

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

# Amazon EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合する
<a name="seamlessly_join_linux_to_shared_MAD"></a>

この手順では、Amazon EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合します。これを行うには、EC2 Linux AWS Secrets Manager インスタンスを起動するアカウントの EC2 インスタンスロールに IAM 読み取りポリシーを作成します。この手順で、これは `Account 2` と呼ばれます。このインスタンスは、`Account 1` と呼ばれる他のアカウントから共有されている AWS Managed Microsoft AD を使用します。

## 前提条件
<a name="seamlessly_join_linux_to_shared_MAD_prereqs"></a>

Amazon EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合する前に、以下を完了する必要があります。
+ チュートリアルのステップ 1～3、[チュートリアル: AWS Managed Microsoft AD ディレクトリを共有してシームレスな EC2 ドメイン結合を実現する](ms_ad_tutorial_directory_sharing.md)。このチュートリアルでは、ネットワークの設定と AWS Managed Microsoft AD の共有について説明します。
+ [Amazon EC2 Linux インスタンスを AWS Managed Microsoft AD Active Directory にシームレスに結合する](seamlessly_join_linux_instance.md) に概説されている手順。

## ステップ 1. アカウント 2 で LinuxEC2DomainJoin ロールを作成する
<a name="seamlessly_join_linux_to_shared_MAD_step_1"></a>

このステップでは、`Account 2` にサインインした状態で IAM コンソールを使用し、EC2 Linux インスタンスをドメイン結合するための IAM ロールを作成します。

**LinuxEC2DomainJoin ロールを作成する**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 左のナビゲーションペインにある **[アクセス管理]** で、**[ロール]** を選択します。

1. **[ロール]** ページで、**[ロールの作成]** を選択してください。

1. **[信頼されたエンティティの種類を選択]** の下で、**[AWS サービス]** ( ) を選択します。

1. **[ユースケース]** で **[EC2]** を選択し、**[次へ]** を選択します。

1. **[Filter policies]** (フィルターポリシー) で、以下を実行します。

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

   1. `AmazonSSMDirectoryServiceAccess` と入力します。次に、リスト内のその項目のチェックボックスを選択します。

   1. これらのポリシーを追加した後、**[ロールを作成]** を選択します。
**注記**  
`AmazonSSMDirectoryServiceAccess` は、 が管理する Active Directory にインスタンスを結合するためのアクセス許可を提供します Directory Service。 `AmazonSSMManagedInstanceCore`は、 を使用するために必要な最小限のアクセス許可を提供します AWS Systems Manager。これらのアクセス許可を使用してロールを作成する方法、および IAM ロールに割り当てることができるその他のアクセス許可とポリシーの詳細については、「*AWS Systems Manager ユーザーガイド*」の「[Systems Manager に必要なインスタンスのアクセス許可を設定する](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-permissions.html)」を参照してください。

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

1. (選択可能) **[ロールの説明]** に、説明を入力します。**

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

1. [**ロールの作成**] を選択してください。

## ステップ 2. シー AWS Secrets Manager クレットを共有するためのクロスアカウントリソースアクセスを作成する
<a name="seamlessly_join_linux_to_shared_MAD_step_2"></a>

次のセクションでは、EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合するために満たす必要がある追加要件について説明します。これらの要件には、リソースポリシーの作成と、適切なサービスとリソースへのアタッチが含まれます。

アカウントのユーザーが別のアカウントの AWS Secrets Manager シークレットにアクセスできるようにするには、リソースポリシーと ID ポリシーの両方でアクセスを許可する必要があります。このタイプのアクセスは「[クロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)」と呼ばれます。

このタイプのアクセスは、シークレットと同じアカウントのアイデンティティにアクセスを許可することとは異なります。また、シークレットの暗号化に使用されている [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) (KMS) キーをアイデンティティで使用できるようにする必要があります。クロスアカウントアクセスに AWS マネージドキー (`aws/secretsmanager`) を使用できないため、このアクセス許可が必要です。代わりに、作成した KMS キーを使用してシークレットを暗号化し、キーポリシーをそれにアタッチする必要があります。シークレットの暗号化キーを変更するには、「[AWS Secrets Manager シークレットを変更する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)」を参照してください。

**注記**  
使用するシークレットに応じて AWS Secrets Manager、 に関連する料金が発生します。現在の価格の詳細なリストについては、「[AWS Secrets Manager 料金表](https://aws.amazon.com/secrets-manager/pricing/)」を参照してください。Secrets Manager AWS マネージドキー `aws/secretsmanager`が作成する を使用して、シークレットを無料で暗号化できます。独自の KMS キーを作成してシークレットを暗号化すると、 は現在の KMS AWS レートで AWS 課金します。詳細については、「[AWS Key Management Service 料金](https://aws.amazon.com/kms/pricing/)」を参照してください。

次の手順では、ユーザーが EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合できるようにするリソースポリシーを作成できます。

**アカウント 1 のシークレットにリソースポリシーをアタッチします。**

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) から Secrets Manager コンソールを開きます。

1. シークレットのリストから、[前提条件](#seamlessly_join_linux_to_shared_MAD_prereqs) の間に作成した **[シークレット]** を選択します。

1. **[概要]** タブの **[シークレットの詳細ページ]** で、**[リソースアクセス許可]** までスクロールダウンします。

1. **[アクセス許可を編集する]** を選択します。

   1. ポリシーフィールドに次のポリシーを入力します。次のポリシーでは、`Account 2` の **[LinuxEC2DomainJoin]** が `Account 1` のシークレットにアクセスすることを許可しています。ARN 値を、「[ステップ 1](#seamlessly_join_linux_to_shared_MAD_step_1)」で作成した `LinuxEC2DomainJoin` ロールである `Account 2` の ARN 値に置き換えます。このポリシーを使用するには、「 [AWS Secrets Manager シークレットにアクセス許可ポリシーをアタッチする](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)」を参照してください。

------
#### [ JSON ]

****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "AWS": "arn:aws:iam::123456789012:role/LinuxEC2DomainJoin"
           },
           "Action": "secretsmanager:GetSecretValue",
           "Resource": "*"
         }
       ]
     }
     ```

------

**Account 1 の KMS キーのキーポリシーにステートメントを追加します。**

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) から Secrets Manager コンソールを開きます。

1. 左のナビゲーションバーで、**[カスタマーマネージドキー]** を選択します。

1. **[カスタマーマネージドキー]** ページで、作成したキーを選択します。

1. **[キーの詳細]** ページで、**[キーポリシー]** に移動し、**[編集]** を選択します。

1. 次のキーポリシーステートメントにより、`Account 2` の `ApplicationRole` が `Account 1` で KMS キーを使用して `Account 1` のシークレットを復号化できるようにします。このステートメントを使用するには、それを KMS キーのキーポリシーに追加します。詳細については、[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)を参照してください。

   ```
   {
   {
     "Effect": "Allow",
     "Principal": {
       "AWS": "arn:aws:iam::Account2:role/ApplicationRole"
     },
     "Action": [
       "kms:Decrypt",
       "kms:DescribeKey"
     ],
     "Resource": "*"
   }
   ```

**Account 2 のアイデンティティにアイデンティティポリシーを作成する**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 左のナビゲーションペインにある **[アクセス管理]** で、**[ポリシー]** を選択します。

1. [**ポリシーの作成**] を選択します。**[ポリシーエディター]** で、**[JSON]** を選択します。

1. 次のポリシーにより、`Account 2` の `ApplicationRole` が `Account 1` のシークレットにアクセスし、同じく `Account 1` にある暗号化キーを使用してシークレットの値を復号化できるようになります。Secrets Manager コンソールで、**[シークレットの詳細]** ページの **[シークレットの ARN]** の下に、シークレットの ARN を見つけられます。または、[describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html) を呼び出してシークレットの ARN を識別することもできます。リソース ARN をシークレット ARN と `Account 1` のリソース ARN に置き換えます。このポリシーを使用するには、「 [AWS Secrets Manager シークレットにアクセス許可ポリシーをアタッチする](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)」を参照してください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "secretsmanager:GetSecretValue",
         "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secretName-AbCdEf"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:Describekey"
         ],
         "Resource": "arn:aws:kms:us-east-1:111122223333:key/Your_Encryption_Key"
       }
     ]
   }
   ```

------

1. **[次へ]** を選択し、**[変更の保存]** を選択します。

1. [Attach a resource policy to the secret in Account 1](#step1ResourcePolicy) の `Account 2` で作成したロールを検索して選択します。

1. **[アクセス許可を追加する]** の下で、**[ポリシーを追加する]** を選択します。

1. 検索バーで、[Add a statement to the key policy for the KMS key in Account 1](#step2KeyPolicy) で作成したポリシーを検索し、チェックボックスを選択してポリシーをロールに追加します。**[アクセス許可を追加する]** を選択します。

## ステップ 3. Linux インスタンスをシームレスに結合する
<a name="seamlessly_join_linux_to_shared_MAD_prereqs_step_3"></a>

次の手順を使用して、EC2 Linux インスタンスを共有 AWS Managed Microsoft AD にシームレスに結合できるようになりました。

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

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. ナビゲーションバーのリージョンセレクターから、既存のディレクトリ AWS リージョン と同じ を選択します。

1. [**EC2 ダッシュボード**] の [**インスタンスを起動する**] セクションで、[**インスタンスを起動する**] を選択します。

1. **[インスタンスを起動する]** ページの **[名前とタグ]** セクションで、Linux EC2 インスタンスに使用する名前を入力します。

1.  (選択可能) **[補足タグを追加]** で、タグとキーの値のペアを 1 つまたは複数追加して、この EC2 インスタンスのアクセスを整理、追跡、またはコントロールします。**

1. **Application and OS Image (Amazon Machine Image)**セクションで、起動したいLinux AMIを選択します。
**注記**  
使用する AMI には AWS Systems Manager 、(SSM Agent) バージョン 2.3.1644.0 以降が必要です。その AMI からインスタンスを起動して AMI にインストールされている SSM Agent のバージョンを確認するには、「[現在インストールされている SSM Agent バージョンを取得するには](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-get-version.html)」を参照してください。SSM Agent をアップグレードする必要がある場合は、「[Linux の EC2 インスタンスで SSM Agent をインストールして設定する](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html)」を参照してください。  
SSM は Linux インスタンスを Active Directory `aws:domainJoin` ドメインに参加させる際にプラグインを使用します。プラグインは、Linux インスタンスのホスト名を EC2AMAZ-*XXXXXXX* の形式に変更します。`aws:domainJoin` の詳細については、「*AWS Systems Manager ユーザーガイド*」の「[AWS Systems Manager コマンドドキュメントプラグインリファレンス](https://docs.aws.amazon.com//systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-domainJoin)」を参照してください。

1. [**インスタンスタイプ**] セクションで、[**インスタンスタイプ**] ドロップダウンリストから使用するインスタンスタイプを選択します。

1. [**キーペア (ログイン)**] セクションで、新しいキーペアを作成するか、既存のキーペアから選択します。新しいキーペアを作成するには、[**新しいキーペアの作成**] を選択します。キーペアの名前を入力し、[**キーペアタイプ**] と [**プライベートキーファイル形式**] のオプションを選択します。OpenSSH で使用できる形式でプライベートキーを保存するには、[**.pem**] を選択します。プライベートキーを PuTTY で使用できる形式で保存するには、[**.ppk**] を選択します。[**キーペアの作成**] を選択します。ブラウザによって秘密キーファイルが自動的にダウンロードされます。ダウンロードしたプライベートキーのファイルを安全な場所に保存します。
**重要**  
プライベートキーのファイルを保存できるのはこのタイミングだけです。

1. [**インスタンスを起動する**] ページの [**ネットワーク設定**] セクションで、[**編集**] を選択します。**[VPC - *必須*]** ドロップダウンリストから、ディレクトリが作成された **[VPC]** を選択します。

1. [**サブネット**] ドロップダウンリストから VPC 内のパブリックサブネットの 1 つを選択します。選択するサブネットで、すべての外部トラフィックがインターネットゲートウェイにルーティングされるように選択する必要があります。そうでない場合は、インスタンスにリモート接続できません。

   インターネットゲートウェイへの接続方法の詳細については、「*Amazon VPC User Guide*」の「[Connect to the internet using an internet gateway](https://docs.aws.amazon.com//vpc/latest/userguide/VPC_Internet_Gateway.html)」を参照してください。

1. [**自動割り当てパブリック IP**] で、[**有効化**] を選択します。

   公開 IP アドレス指定とプライベート IP アドレス指定の詳細については、「Amazon EC2 インスタンスユーザーガイド」の「[Amazon EC2 インスタンスの IP アドレス指定](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-instance-addressing.html)」を参照してください。**

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

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

1. [**高度な詳細**] セクションを選択し、[**ドメイン結合ディレクトリ**] ドロップダウンリストからドメインを選択します。
**注記**  
ドメイン結合ディレクトリを選択すると、次のようになります:   

![\[ドメイン結合ディレクトリを選択したときのエラーメッセージ。既存の SSM ドキュメントにエラーがあります。\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/images/SSM-Error-Message.png)

このエラーは、EC2 起動ウィザードが予期しないプロパティを持つ既存の SSM ドキュメントを識別した場合に発生します。次のいずれかを試すことができます。  
以前に SSM ドキュメントを編集し、プロパティの存在が予想される場合は、[閉じる] を選択して EC2 インスタンスを変更せずに起動します。
ここで既存の SSM ドキュメントを削除するリンクを選択して、SSM ドキュメントを削除します。これにより、正しいプロパティを使用する SSM ドキュメントを作成できます。EC2 インスタンスを起動すると、SSM ドキュメントが自動的に作成されます。

1. **[IAMインスタンスプロファイル]**には、前提条件のセクションで以前に作成したIAMロールを選択します **[ステップ2：LinuxEC2DomainJoinロールを作成します]**

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

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

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

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 に結合する
<a name="join_linux_prereq"></a>

Amazon Linux、CentOS、Red Hat、または Ubuntu インスタンスをディレクトリに結合するときは、先に、[Linux インスタンスをシームレスに結合する](seamlessly_join_linux_instance.md#seamless-linux-join-instance) で指定したとおりにインスタンスを起動する必要があります。

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

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

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

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

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

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

   ```
   sudo yum -y update
   ```

1. 必要な Amazon Linux パッケージを Linux インスタンスにインストールします。
**注記**  
これらのパッケージの一部が既にインストールされている可能性があります。  
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。  
Amazon Linux  

   ```
   sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
   ```
**注記**  
使用している Amazon Linux のバージョンを確認する方法については、「[Amazon EC2 Linux インスタンス用ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#amazon-linux-image-id)」の 「Identifying Amazon Linux images」(Amazon Linux イメージの特定) を参照してください。

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

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

   ```
   ...
    * Successfully enrolled machine in realm
   ```

1. 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 クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

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

      ```
      ## Add the "AWS Delegated Administrators" group from the example.com domain.
      %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
      ```

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

------
#### [ CentOS ]<a name="centos"></a>

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

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

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

   ```
   sudo yum -y update
   ```

1. 必要な CentOS 7 パッケージを Linux インスタンスにインストールします。
**注記**  
これらのパッケージの一部が既にインストールされている可能性があります。  
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

   ```
   sudo yum -y install sssd realmd krb5-workstation samba-common-tools
   ```

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

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

   ```
   ...
    * Successfully enrolled machine in realm
   ```

1. 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 クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

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

      ```
      ## Add the "AWS Delegated Administrators" group from the example.com domain.
      %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
      ```

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

------
#### [ Red Hat ]<a name="redhat"></a>

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

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

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

   ```
   sudo yum -y update
   ```

1. 必要な Red Hat パッケージを Linux インスタンスにインストールします。
**注記**  
これらのパッケージの一部が既にインストールされている可能性があります。  
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

   ```
   sudo yum -y install sssd realmd krb5-workstation samba-common-tools
   ```

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

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

   ```
   ...
    * Successfully enrolled machine in realm
   ```

1. 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 クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

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

      ```
      ## Add the "AWS Delegated Administrators" group from the example.com domain.
      %AWS\ Delegated\ Administrators@example.com 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. 必要な SUSE Linux 15 パッケージを Linux インスタンスにインストールします。
**注記**  
これらのパッケージの一部が既にインストールされている可能性があります。  
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

   ```
   sudo zypper -n install realmd adcli sssd sssd-tools sssd-ad samba-client krb5-client
   ```

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

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

   ```
   …
   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.
   ```

1. **SSSD** を **PAM** で、手動で有効化します。

   ```
   sudo pam-config --add --sss
   ```

1. nsswitch.conf を編集して nsswitch.conf の SSSD を有効にする

   ```
   sudo vi /etc/nsswitch.conf
   ```

   ```
   passwd: compat sss
   group:  compat sss
   shadow: compat sss
   ```

1. /etc/pam.d/common-session に次の行を追加し、最初のログイン時にホームディレクトリを自動的に作成します。

   ```
   sudo vi /etc/pam.d/common-session
   ```

   ```
   session optional pam_mkhomedir.so skel=/etc/skel umask=077
   ```

1. インスタンスを再起動して、ドメイン結合プロセスを完了します。

   ```
   sudo reboot
   ```

1. 任意の SSH クライアントを使用してインスタンスに再接続し、ドメイン結合が正常に完了したことを確認し、追加の手順を完了します。

   1. インスタンスがドメインに登録済みであることを確認するには

      ```
      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
      ```

   1. 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
      ```

1. SSH とコンソールを介したアクセスをユーザーに許可するには

   ```
   sudo realm permit join_account@example.com
   ```

   SSH とコンソールを介したアクセスをドメイングループに許可するには

   ```
   sudo realm permit -g 'AWS Delegated Administrators'
   ```

   または、すべてのユーザーにアクセスを許可するには

   ```
   sudo realm permit --all
   ```

1. 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. 13. インスタンスが再起動したら、任意の SSH クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

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

      ```
      ## Add the "Domain Admins" group from the awsad.com domain.
      %AWS\ Delegated\ Administrators@example.com ALL=(ALL) NOPASSWD: ALL
      ```

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

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

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

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

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

1. 必要な Ubuntu パッケージを Linux インスタンスにインストールします。
**注記**  
これらのパッケージの一部が既にインストールされている可能性があります。  
パッケージをインストールすると、いくつかのポップアップ設定画面が表示されます。一般的に、これらの画面のフィールドは空白のままで構いません。

   ```
   sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
   ```

1. 逆引き DNS 解決を無効にし、デフォルトのレルムをドメインの FQDN に設定します。Ubuntu インスタンスは、レルムが稼働する前に DNS で逆引き解決可能になっている**必要があります**。なっていない場合、次のように /etc/krb5.conf で逆引き DNS を無効にする必要があります。

   ```
   sudo vi /etc/krb5.conf
   ```

   ```
   [libdefaults]
   default_realm = EXAMPLE.COM
   rdns = false
   ```

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

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

   ```
   ...
    * Successfully enrolled machine in realm
   ```

1. 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 クライアントを使用してインスタンスに接続し、以下の手順を実行して AWS 委任管理者グループを sudoers リストに追加します。

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

      ```
      sudo visudo
      ```

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

      ```
      ## Add the "AWS Delegated Administrators" group from the example.com domain.
      %AWS\ Delegated\ Administrators@example.com ALL=(ALL:ALL) ALL
      ```

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

------

## アカウントのログインアクセスの制限
<a name="linux_filter"></a>

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

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

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

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

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

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

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

**ad\$1access\$1filter** を手動で **/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\$1access\$1filter** を使用して、特定のユーザーのみにインスタンスへのログインを許可できます。

例: 

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

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

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

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

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

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

**ad\$1access\$1filter** を手動で **/etc/sssd/sssd.conf** に追加する必要があります。

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

   ```
   sudo vi /etc/sssd/sssd.conf
   ```

1. この操作を行った後、**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)
   ```

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

   ```
   sudo systemctl restart sssd.service
   ```

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

   ```
   sudo service sssd restart
   ```

## ID マッピング
<a name="managed-ad-id-mapping"></a>

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

1. 一元化

1. 分散型

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

**一元化されたユーザ ID マッピング**  
Active Directory または別のLDAP (LDAP) サービスは Linux ユーザーに UID と GID を提供します。Active Directory では、POSIX 拡張が設定されている場合、これらの識別子はユーザーの属性に保存されます。
+ UID-Linux ユーザー名 (文字列)
+ UID 番号-Linux ユーザー ID 番号 (整数)
+ GID 番号-Linux グループ ID 番号 (整数)

アクティブディレクトリの 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 サービスの開始が失敗することがあります。この失敗の理由は、UID の変更がサポートされていないためです。ID マッピングから POSIX 属性、または POSIX 属性から ID マッピングに変更するたびに、SSSD キャッシュを削除することをお勧めします。ID マッピングと ldap\$1id\$1mapping パラメータの詳細については、Linux コマンドラインで「ssd-ldap(8) man」のページを参照してください。

## Linux インスタンスへの接続
<a name="linux_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%
```

# 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%
```