翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EC2 Linux インスタンスを AWSManaged Microsoft AD Active Directory にシームレスに結合する
この手順では、Amazon EC2 Linux インスタンスを AWSManaged Microsoft AD Active Directory にシームレスに結合します。この手順を完了するには、追加コストが発生する可能性のある AWS Secrets Managerシークレットを作成する必要があります。詳細については、「AWS Secrets Manager料金
複数のAWSアカウントでシームレスなドメイン結合を実行する必要がある場合は、オプションでディレクトリ共有を有効にするように選択できます。
以下の 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 ビデオを参照してください。
前提条件
EC2 Linux インスタンスへのシームレスなドメイン結合を設定する前に、これらのセクションにある手順を完了しておく必要があります。
シームレスなドメイン結合のためのネットワーク前提条件
EC2 Linux インスタンスをシームレスにドメイン結合するには、以下を完了する必要があります。
-
EC2 Linux インスタンスをシームレスに結合するには、次の IAM アクセス許可が必要です。
-
AWSManaged Microsoft AD がある。詳細についてはAWS Managed Microsoft AD の作成を参照してください。
-
EC2 Windows インスタンスをシームレスに結合するには、次の IAM アクセス許可が必要です。
-
次の IAM アクセス許可を持つ IAM インスタンスプロファイル:
-
AmazonSSMManagedInstanceCore -
AmazonSSMDirectoryServiceAccess
-
-
EC2 を AWSManaged 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"
-
-
-
-
-
AWSManaged Microsoft AD が作成されると、インバウンドルールとアウトバウンドルールを使用してセキュリティグループが作成されます。これらのルールとポートの詳細については、「AWS Managed Microsoft AD で作成されるもの」を参照してください。EC2 Linux インスタンスをシームレスにドメイン結合するには、インスタンスを起動する VPC で、 AWSManaged Microsoft AD セキュリティグループのインバウンドルールとアウトバウンドルールで許可されているのと同じポートを許可する必要があります。
-
ネットワークセキュリティとファイアウォールの設定によっては、追加のアウトバウンドトラフィックを許可する必要がある場合があります。このトラフィックは、次のエンドポイントへの HTTPS (ポート 443) 用です。
Endpoint ロール ec2messages.region.amazonaws.com.rproxy.govskope.caSession Manager サービスを使用してセッションチャネルを作成および削除します。詳細については、「AWS Systems Manager エンドポイントとクォータ」を参照してください。
ssm.region.amazonaws.comのエンドポイントAWS Systems Manager Session Manager。詳細については、「AWS Systems Manager エンドポイントとクォータ」を参照してください。
ssmmessages.region.amazonaws.com.rproxy.govskope.caSession Manager サービスを使用してセッションチャネルを作成および削除します。詳細については、「AWS Systems Manager エンドポイントとクォータ」を参照してください。
ds.region.amazonaws.comのエンドポイントDirectory Service。詳細については、「のリージョンの可用性Directory Service」を参照してください。
secretsmanager.region.amazonaws.comのエンドポイントAWS Secrets Manager。詳細については、「AWS Secrets Manager エンドポイントとクォータ」を参照してください。
-
-
AWSManaged Microsoft AD ドメイン名を解決する DNS サーバーを使用することをお勧めします。そのためには、DHCP オプションセットを作成できます。詳細については「AWS Managed Microsoft AD の DHCP オプションセットの作成または変更」を参照してください。
-
DHCP オプションセットを作成しない場合、DNS サーバーは静的になり、 AWSManaged Microsoft AD によって に設定されます。
-
シームレスなドメイン結合のサービスアカウントを選択する
Linux コンピュータを AWSManaged Microsoft AD Active Directory ドメインにシームレスに結合できます。これを行うには、マシンをドメインに結合するためのコンピュータアカウントの作成アクセス許可を持つユーザーアカウントを使用する必要があります。AWS が委任した管理者または他のグループのメンバーが、コンピュータをドメインに結合する十分な権限を持っている場合でも、これらを使用することは推奨されません。ベストプラクティスとして推奨されるのは、コンピュータをドメインに結合するために必要な、最小限の権限を持ったサービスアカウントを使用することです。
コンピュータをドメインに結合するために必要な最小限の権限をアカウントに委任するには、次の PowerShell コマンドを実行します。これらのコマンドは、ドメインに結合され、AWS Managed Microsoft AD の Active Directory 管理ツールをインストールする がインストールされている 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) を使用する場合は、権限をサービスアカウントに委任する で説明している手動プロセスを使用できます。
ドメインサービスアカウントを保存するシークレットを作成する
AWS Secrets Managerを使用してドメインサービスアカウントを保存できます。詳細については、「 AWS Secrets Managerシークレットの作成」を参照してください。
注記
Secrets Manager には料金がかかります。詳細については、「AWS Secrets Manager ガイド」の「料金」を参照してください。
ドメインサービスアカウントの情報を保存するシークレットを作成するには
-
にサインインAWS マネジメントコンソールし、https://console.aws.amazon.com/secretsmanager/
でAWS Secrets Managerコンソールを開きます。 -
[Store a new secret] (新しいシークレットの保存) を選択します。
-
[Store a new secret] (新しいシークレットを保存する) のページで、次の操作を行います:
-
[シークレットのタイプ] で、[その他のシークレットのタイプ] を選択します。
-
[Key/value pairs] (キー/値ペア) で、次のように実行します。
-
最初のボックスに
awsSeamlessDomainUsernameと入力します。同じ行の次のボックスに、サービスアカウントのユーザー名を入力します。例えば、以前に PowerShell コマンドを使用した場合、サービスアカウント名はawsSeamlessDomainになります。注記
awsSeamlessDomainUsernameを正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。
-
[Add row] (行の追加) を選択します。
-
新しい行で、最初のボックスに
awsSeamlessDomainPasswordと入力します。同じ行の次のボックスに、サービスアカウントのパスワードを入力します。注記
awsSeamlessDomainPasswordを正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。 -
暗号化キーの下で、デフォルト値
aws/secretsmanagerのままにしておきます。 このオプションを選択すると、AWS Secrets Manager は常に秘密を暗号化します。自身で作成したキーを選択することもできます。 -
[次へ] を選択します。
-
-
-
[Secret name]の下に、
d-xxxxxxxxxxをディレクトリIDに置き換えて、以下のフォーマットでディレクトリIDを含むsecret nameを入力します: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) 値をメモします。これは次のセクションで必要になります。
ドメインサービスアカウントシークレットのローテーションを有効にする
セキュリティ体制を改善するために、シークレットを定期的にローテーションすることをお勧めします。
ドメインサービスアカウントシークレットのローテーションを有効にするには
-
「 ユーザーガイド」の「シーAWS Secrets Managerクレットの自動ローテーションを設定する」の手順に従います。 AWS Secrets Manager
ステップ 5 では、「AWS Secrets Manager ユーザーガイド」のローテーションテンプレート「Microsoft Active Directory 認証情報」を使用します。
ヘルプについては、「 AWS Secrets Managerユーザーガイド」の「ローAWS Secrets Managerテーションのトラブルシューティング」を参照してください。
必要な IAM ポリシーとロールを作成する
次の前提条件の手順に従い、Secrets Manager のシームレスなドメイン結合シークレット (先ほど作成したもの) への読み取り専用アクセスを許可するカスタムポリシーを作成し、新しい LinuxEC2DomainJoin IAM ロールを作成します。
Secrets Manager の IAM 読み取りポリシーを作成する
IAM コンソールを使用して、Secrets Manager シークレットへの読み取り専用アクセスを許可するポリシーを作成します。
Secrets Manager の IAM 読み取りポリシーを作成するには
-
IAM ポリシーを作成する権限を持つユーザーAWS マネジメントコンソールとして にサインインします。次に、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインの [アクセス管理] で、[ポリシー] を選択します。
-
[Create policy] (ポリシーの作成) を選択します。
-
[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" ] } ] } -
完了したら、[Next] を選択します。構文エラーがある場合は、Policy Validator によってレポートされます。詳細については、「IAM ポリシーの検証」を参照してください。
-
[Review policy] (ポリシーの確認) ページで、ポリシー名を入力します (
SM-Secret-Linux-DJ-など)。[Summary] (概要) セクションで、ポリシーで付与されているアクセス許可を確認します。[Create Policy] (ポリシーの作成) をクリックし、変更を保存します。新しいポリシーが管理ポリシーのリストに表示されます。これで ID にアタッチする準備は完了です。d-xxxxxxxxxx-Read
注記
シークレットごとに 1 つのポリシーを作成することをお勧めします。そうすることで、インスタンスが適切なシークレットにのみアクセスできるようになり、インスタンスが侵害された場合の影響を最小限に抑えることができます。
LinuxEC2DomainJoin ロールを作成する
IAM コンソールを使用して、Linux EC2 インスタンスへのドメイン結合に使用するロールを作成します。
LinuxEC2DomainJoin ロールを作成するには
-
IAM ポリシーを作成する権限を持つユーザーAWS マネジメントコンソールとして にサインインします。次に、IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインの [Access Management] (アクセス管理) で、[Roles] (ロール) を選択します。
-
コンテンツペインで、[Create role] (ロールの作成) を選択します。
-
[Select type of trusted entity] (信頼されたエンティティの種類を選択) の下で、[AWS Service] を選択します。
-
[Use case] (ユースケース) で EC2 を選択し、[Next] (次へ) を選択します。
-
[Filter policies] (フィルターポリシー) で、以下を実行します。
-
AmazonSSMManagedInstanceCoreと入力します。次に、リスト内のその項目のチェックボックスをオンにします。 -
AmazonSSMDirectoryServiceAccessと入力します。次に、リスト内のその項目のチェックボックスをオンにします。 -
SM-Secret-Linux-DJ-(または前の手順で作成したポリシーの名前) を入力します。次に、リスト内のその項目のチェックボックスをオンにします。d-xxxxxxxxxx-Read 上記の 3 つのポリシーを追加したら、[ロールを作成] を選択します。
注記
[AmazonSSMDirectoryServiceAccess] により、Directory Service で管理されている Active Directory にインスタンスを結合するためのアクセス許可が付与されます。AmazonSSMManagedInstanceCore は、 AWS Systems Managerサービスを使用するために必要な最小限のアクセス許可を提供します。これらのアクセス許可を使用してロールを作成する方法、および IAM ロールに割り当てることができるその他のアクセス許可とポリシーの詳細については、「AWS Systems Manager ユーザーガイド」の「Systems Manager の IAM インスタンスプロファイルを作成する」を参照してください。
-
LinuxEC2DomainJoin[Role name] (ロール名)欄 に、 適宜の別の名前など 新しいロールの名前を入力します。(オプション) [Role description] (ロールの説明) に、説明を入力します。
(オプション) [ステップ 3: タグの追加] で [新しいタグの追加] を選択してタグを追加します。タグのキーと値のペアは、このロールのアクセスを整理、追跡、または制御するために使用されます。
-
[ロールの作成] を選択してください。
Linux インスタンスをシームレスに結合する
Linux インスタンスをシームレスに結合するには
-
にサインインAWS マネジメントコンソールし、https://console.aws.amazon.com/ec2/
で Amazon EC2 コンソールを開きます。 -
ナビゲーションバーのリージョンセレクターから、既存のディレクトリAWS リージョンと同じ を選択します。
-
[EC2 ダッシュボード] の [インスタンスを起動する] セクションで、[インスタンスを起動する] を選択します。
-
[インスタンスを起動する] ページの [名前とタグ] セクションで、Linux EC2 インスタンスに使用する名前を入力します。
(選択可能) [補足タグを追加] で、タグとキーの値のペアを 1 つまたは複数追加して、この EC2 インスタンスのアクセスを整理、追跡、またはコントロールします。
-
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 バージョンを取得するには」を参照してください。SSM Agent をアップグレードする必要がある場合は、「Linux の EC2 インスタンスで SSM Agent をインストールして設定する」を参照してください。
SSM は Linux インスタンスを Active Directory
aws:domainJoinドメインに参加させる際にプラグインを使用します。プラグインは、Linux インスタンスのホスト名を EC2AMAZ-XXXXXXXの形式に変更します。aws:domainJoinの詳細については、「AWS Systems Manager ユーザーガイド」の「AWS Systems Manager コマンドドキュメントプラグインリファレンス」を参照してください。 -
[インスタンスタイプ] セクションで、[インスタンスタイプ] ドロップダウンリストから使用するインスタンスタイプを選択します。
-
[キーペア (ログイン)] セクションで、新しいキーペアを作成するか、既存のキーペアから選択します。新しいキーペアを作成するには、[新しいキーペアの作成] を選択します。キーペアの名前を入力し、[キーペアタイプ] と [プライベートキーファイル形式] のオプションを選択します。OpenSSH で使用できる形式でプライベートキーを保存するには、[.pem] を選択します。プライベートキーを PuTTY で使用できる形式で保存するには、[.ppk] を選択します。[キーペアの作成] を選択します。ブラウザによって秘密キーファイルが自動的にダウンロードされます。ダウンロードしたプライベートキーのファイルを安全な場所に保存します。
重要
プライベートキーのファイルを保存できるのはこのタイミングだけです。
-
[インスタンスを起動する] ページの [ネットワーク設定] セクションで、[編集] を選択します。[VPC - 必須] ドロップダウンリストから、ディレクトリが作成された [VPC] を選択します。
-
[サブネット] ドロップダウンリストから VPC 内のパブリックサブネットの 1 つを選択します。選択するサブネットで、すべての外部トラフィックがインターネットゲートウェイにルーティングされるように選択する必要があります。そうでない場合は、インスタンスにリモート接続できません。
インターネットゲートウェイへの接続方法の詳細については、「Amazon VPC User Guide」の「Connect to the internet using an internet gateway」を参照してください。
-
[自動割り当てパブリック IP] で、[有効化] を選択します。
公開 IP アドレス指定とプライベート IP アドレス指定の詳細については、「Amazon EC2 インスタンスユーザーガイド」の「Amazon EC2 インスタンスの IP アドレス指定」を参照してください。
-
[ファイアウォール (セキュリティグループ)] 設定にはデフォルト設定を使用するか、必要に応じて変更を加えることができます。
-
[ストレージの設定] 設定にはデフォルト設定を使用するか、必要に応じて変更を加えることができます。
-
[高度な詳細] セクションを選択し、[ドメイン結合ディレクトリ] ドロップダウンリストからドメインを選択します。
注記
ドメイン結合ディレクトリを選択すると、次のようになります:
このエラーは、EC2 起動ウィザードが予期しないプロパティを持つ既存の SSM ドキュメントを識別した場合に発生します。次のいずれかを試すことができます。
以前に SSM ドキュメントを編集し、プロパティの存在が予想される場合は、[閉じる] を選択して EC2 インスタンスを変更せずに起動します。
ここで既存の SSM ドキュメントを削除するリンクを選択して、SSM ドキュメントを削除します。これにより、正しいプロパティを使用する SSM ドキュメントを作成できます。EC2 インスタンスを起動すると、SSM ドキュメントが自動的に作成されます。
-
[IAMインスタンスプロファイル]には、前提条件のセクションで以前に作成したIAMロールを選択します [ステップ2:LinuxEC2DomainJoinロールを作成します]
-
[インスタンスを起動] を選択します。
注記
SUSE Linux でシームレスなドメイン結合を実行する場合は、認証が機能する前に再起動する必要があります。Linux ターミナルから SUSE を再起動するには、「sudo reboot」と入力します。