Linux EC2 インスタンスを Simple AD ディレクトリにシームレスに結合する
この手順では、Linux EC2 インスタンスを Simple 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 より前のディストリビューションでは、シームレスなドメイン結合機能はサポートされていません。
前提条件
Linux EC2 インスタンスへのシームレスなドメイン結合を設定する前に、このセクションの手順を完了する必要があります。
シームレスなドメイン結合のサービスアカウントを選択する
Linux コンピュータを Simple AD ドメインにシームレスに結合できます。これを行うには、コンピュータをドメインに結合するためのコンピュータアカウントの作成アクセス許可を持つユーザーアカウントを作成する必要があります。Domain Admins または他のグループのメンバーがコンピュータをドメインに結合する十分な権限を持っていても、これらは推奨されません。ベストプラクティスとして、コンピュータをドメインに結合するために必要な最低限の権限を持つサービスアカウントを使用することをお勧めします。
コンピュータアカウントの作成のために、サービスアカウントへのアクセス許可を処理および委任する方法の詳細については、「権限をサービスアカウントに委任する」を参照してください。
ドメインサービスアカウントを保存するシークレットを作成する
ドメインサービスアカウントを保存するときは AWS Secrets Manager を使用します。
ドメインサービスアカウントの情報を保存するシークレットを作成するには
-
AWS Management Console にサインインし、AWS Secrets Manager コンソール (https://console.aws.amazon.com/secretsmanager/
) を開きます。 -
[Store a new secret] (新しいシークレットの保存) を選択します。
-
[Store a new secret] (新しいシークレットを保存する) ページで、次の操作を実行します。
-
[Select secret type] (シークレットの種類を選択) で、[Other type of secrets] (他の種類のシークレット) を選択します。
-
[Specify the key/value pairs to be stored in the secret] (シークレットに保存するキーと値のペアを指定する) で、次の作業を行います。
-
最初のボックスに
awsSeamlessDomainUsername
と入力します。同じ行の次のボックスに、サービスアカウントのユーザー名を入力します。例えば、以前に PowerShell コマンドを使用した場合、サービスアカウント名はawsSeamlessDomain
になります。注記
awsSeamlessDomainUsername
を正確に入力する必要があります。先頭または末尾にスペースがないことを確認してください。スペースがあると、ドメイン結合が失敗します。 -
[Add row] (行の追加) を選択します。
-
新しい行で、最初のボックスに
awsSeamlessDomainPassword
と入力します。同じ行の次のボックスに、サービスアカウントのパスワードを入力します。注記
awsSeamlessDomainPassword
を正確に入力する必要があります。先頭または末尾にスペースがないことを確認してください。スペースがあると、ドメイン結合が失敗します。 -
[Select the encryption key] (暗号化キーを選択) で、メニューから [DefaultEncryptionKey] を選択します。このオプションを選択すると、Secrets Manager は常にシークレットを暗号化し、ユーザーに無償で提供します。自身で作成したキーを選択することもできます。
-
[Next] (次へ) をクリックします。
-
-
-
[Secret name] (シークレット名) に、次の形式でディレクトリ ID を含むシークレット名を入力します。
aws/directory-services/
d-xxxxxxxxx
/seamless-domain-joinこれは、アプリケーション内のシークレットを取得するために使用されます。
注記
aws/directory-services/
は正確に入力する必要がありますが、d-xxxxxxxxx
/seamless-domain-joind-xxxxxxxxxx
はディレクトリ ID に置き換えてください。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。 -
それ以外はすべてデフォルトのままにして、[Next] (次へ) をクリックします。
-
[Configure automatic rotation] (自動ローテーションを設定) で [Disable automatic rotation] (自動ローテーションを無効にする) を選択し、[Next] (次へ) をクリックします。
-
設定を確認し、[Store] (保存) をクリックして変更を保存します。Secrets Manager コンソールがアカウントのシークレットリストに戻ります。リストには、新しいシークレットが追加されています。
-
新しく作成したシークレット名をリストから選択し、[Secret ARN] (シークレット ARN) 値をメモします。これは次のセクションで必要になります。
必要な IAM ポリシーとロールを作成する
次の前提条件の手順に従い、Secrets Manager のシームレスなドメイン結合シークレット (先ほど作成したもの) への読み取り専用アクセスを許可するカスタムポリシーを作成し、新しい LinuxEC2DomainJoin IAM ロールを作成します。
Secrets Manager の IAM 読み取りポリシーを作成する
IAM コンソールを使用して、Secrets Manager シークレットへの読み取り専用アクセスを許可するポリシーを作成します。
Secrets Manager の IAM 読み取りポリシーを作成するには
-
IAM ポリシーを作成するアクセス許可を持つユーザーとして AWS Management Console にサインインします。次に、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで、[Policies] (ポリシー) を選択します。
-
[Create policy] (ポリシーの作成) を選択します。
-
[JSON] タブを選択し、以下の JSON ポリシードキュメントからテキストをコピーします。これを、[JSON] テキストボックスに貼り付けます。
注記
Resource
ARN を、先ほど作成したシークレットの実際の ARN に置き換えます。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:
############
:secret:aws/directory-service/d-xxxxxxxxxx/seamless-domain-join-example" ] } ] } -
完了したら、[Review policy] (ポリシーの確認) を選択します。構文エラーがある場合は、Policy Validator によってレポートされます。詳細については、「IAM ポリシーの検証」を参照してください。
-
[Review policy] (ポリシーの確認) ページで、ポリシー名を入力します (
SM-Secret-Linux-DJ-
など)。[Summary] (概要) セクションで、ポリシーで付与されているアクセス許可を確認します。[Create Policy] (ポリシーの作成) をクリックし、変更を保存します。新しいポリシーが管理ポリシーのリストに表示されます。これで ID にアタッチする準備は完了です。d-xxxxxxxxxx
-Read
注記
シークレットごとに 1 つのポリシーを作成することをお勧めします。そうすることで、インスタンスが適切なシークレットにのみアクセスできるようになり、インスタンスが侵害された場合の影響を最小限に抑えることができます。
LinuxEC2DomainJoin ロールを作成する
IAM コンソールを使用して、Linux EC2 インスタンスへのドメイン結合に使用するロールを作成します。
LinuxEC2DomainJoin ロールを作成するには
-
IAM ポリシーを作成するアクセス許可を持つユーザーとして AWS Management Console にサインインします。次に、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [Roles] (ロール) を選択します。
-
コンテンツペインで、[Create role] (ロールの作成) を選択します。
-
[Select type of trusted entity] (信頼されたエンティティの種類を選択) の下で、[AWS Service] を選択します。
-
[Choose a use case] (ユースケースの選択) で [EC2] を選択し、[Next: Permissions] (次へ: アクセス許可) をクリックします。
-
[Filter policies] (フィルターポリシー) で、以下を実行します。
-
AmazonSSMManagedInstanceCore
と入力します。次に、リスト内のその項目のチェックボックスをオンにします。 -
AmazonSSMDirectoryServiceAccess
と入力します。次に、リスト内のその項目のチェックボックスをオンにします。 -
SM-Secret-Linux-DJ-
(または前の手順で作成したポリシーの名前) を入力します。次に、リスト内のその項目のチェックボックスをオンにします。d-xxxxxxxxxx
-Read
注記
AmazonSSMDirectoryServiceAccess により、AWS Directory Service で管理されている Active Directory にインスタンスを結合するためのアクセス許可が付与されます。AmazonSSMManagedInstanceCore により、AWS Systems Manager サービスの使用に必要な最小限のアクセス許可が付与されます。これらのアクセス許可を使用してロールを作成する方法、および IAM ロールに割り当てることができるその他のアクセス許可とポリシーの詳細については、「AWS Systems Manager ユーザーガイド」の「Systems Manager の IAM インスタンスプロファイルを作成する」を参照してください。
-
-
[Next: Tags] (次へ: タグ) を選択します。
-
(オプション) 1 つまたは複数のタグキーと値のペアを追加して、このロールのアクセスを整理、追跡、または制御します。続いて、[Next: Review] をクリックします。
-
[Role name] (ロール名) の隣に、新しいロールの名前 (例えば
LinuxEC2DomainJoin
または適宜の別の名前) を入力します。 -
(オプション) [Role description] (ロールの説明) に、説明を入力します。
-
[Create role] (ロールの作成) を選択します。
Linux EC2 インスタンスをシームレスに結合する
すべての前提条件タスクを設定したので、次の手順に従い Linux EC2 インスタンスをシームレスに結合できます。
Linux EC2 インスタンスをシームレスに結合するには
-
AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションバーのリージョンセレクタで、既存のディレクトリと同じリージョンを選択します。
-
[Launch Instance] (インスタンスの起動) を選択します。
-
[Step 1] (ステップ 1) ページで、適切な Amazon マシンイメージ (AMI) の [Select] (選択) をクリックします。
注記
使用する AMI は、AWS Systems Manager (SSM Agent) バージョン 2.3.1644.0 以上である必要があります。その AMI からインスタンスを起動して AMI にインストールされている SSM Agent のバージョンを確認するには、「現在インストールされている SSM Agent バージョンを取得するには」を参照してください。SSM Agent をアップグレードする必要がある場合は、「Linux の EC2 インスタンスで SSM Agent をインストールして設定する」を参照してください。
-
[Step 2] (ステップ 2) ページで、適切なインスタンスタイプを選択し、[Next: Configure Instance Details] (次へ: インスタンスの詳細を設定) を選択します。
-
[Step 3] (ステップ 3) ページで以下の操作を行い、[Next: Add Storage] (次へ: ストレージを追加) を選択します。
-
[Network] (ネットワーク) で、ディレクトリを作成した VPC を選択します。
-
[Subnet] (サブネット) で、VPC 内のいずれかのパブリックサブネットを選択します。選択するサブネットで、すべての外部トラフィックがインターネットゲートウェイにルーティングされるように選択する必要があります。そうしないと、インスタンスにリモート接続することはできません。
-
[Auto-assign Public IP] (パブリック IP の自動割当て) で、[Enable] (有効化) を選択します。パブリック IP アドレス指定とプライベート IP アドレス指定の詳細については、「Amazon EC2 Windows インスタンス用ユーザーガイド」の「Amazon EC2 インスタンスの IP アドレス指定」を参照してください。
-
[Domain join directory] (ドメイン結合ディレクトリ) で、リストからドメインを選択します。
-
[IAM role] (IAM ロール) で、前提条件セクションの [Step 2: Create the LinuxEC2DomainJoin Role] (ステップ 2: LinuxEC2DomainJoin ロールを作成する) で作成した IAM ロールを選択します。
-
-
[Step 4] (ステップ 4) と [Step 5] (ステップ 5) ページは共に、デフォルト設定をそのまま使用するか、必要に応じて変更します。次に、それぞれで [Next] (次へ) をクリックします。
-
[Step 6] (ステップ 6) ページで、ネットワークからインスタンスにリモートでアクセスできるように設定されたセキュリティグループを選択します。続いて、[Review and Launch] (確認と起動) を選択します。
-
[Step 7] (ステップ 7) ページで、[Launch] (起動) を選択し、キーペアを選択して、[Launch Instance] (インスタンスの起動) を選択します。
注記
SUSE Linux でシームレスなドメイン結合を実行する場合は、認証が機能する前に再起動する必要があります。Linux ターミナルから SUSE を再起動するには、「sudo reboot」と入力します。