Amazon EC2 Linux インスタンスを にシームレスに結合する AWS Managed Microsoft AD Active Directory - AWS Directory Service

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

Amazon EC2 Linux インスタンスを にシームレスに結合する AWS Managed Microsoft AD Active Directory

この手順では、Amazon EC2 Linux インスタンスを にシームレスに結合します。 AWS Managed Microsoft AD Active Directory。複数の でシームレスなドメイン結合を実行する必要がある場合 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 より前のディストリビューションでは、シームレスなドメイン結合機能はサポートされていません。

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

前提条件

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

シームレスなドメイン結合のサービスアカウントを選択する

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

コンピュータをドメインに結合するために必要な最小限の権限を持つアカウントを委任するには、次の PowerShell コマンドを実行します。これらのコマンドは、ドメインに結合され、管理対象の Microsoft AD AWS 用アクティブディレクトリ管理ツールのインストール がインストールされている 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 ドメインサービスアカウントを保存する 。

ドメインサービスアカウントの情報を保存するシークレットを作成するには
  1. にサインインする AWS Management Console を開き、 AWS Secrets Manager の コンソールhttps://console.aws.amazon.com/secretsmanager/

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

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

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

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

      1. 最初のボックスに awsSeamlessDomainUsername と入力します。同じ行の次のボックスに、サービスアカウントのユーザー名を入力します。例えば、以前に PowerShell コマンドを使用した場合、サービスアカウント名は になりますawsSeamlessDomain

        注記

        awsSeamlessDomainUsername を正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

        左 AWS Secrets Manager シークレットタイプの選択ページの コンソール。awsSeamlessDomainUsernameシークレットタイプで他のタイプのシークレットが選択され、キー値として入力されます。
      2. [Add row] (行の追加) を選択します。

      3. 新しい行で、最初のボックスに awsSeamlessDomainPassword と入力します。同じ行の次のボックスに、サービスアカウントのパスワードを入力します。

        注記

        awsSeamlessDomainPassword を正確に入力する必要があります。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

      4. 暗号化キー で、デフォルト値 のままにしますaws/secretsmanager。 AWS Secrets Manager このオプションを選択すると、 は常にシークレットを暗号化します。自身で作成したキーを選択することもできます。

        注記

        に関連する料金があります AWS Secrets Manager、使用するシークレットによって異なります。現在の完全な料金表については、「」を参照してください。 AWS Secrets Manager 料金

        を使用できます。 AWS Secrets Manager aws/secretsmanagerがシークレットを無料で暗号化するために作成する マネージドキー。シークレットを暗号化するための独自のKMSキーを作成する場合は、 AWS は現在の で課金します。 AWS KMS rate。詳細については、「」を参照してくださいAWS Key Management Service 料金

      5. [Next (次へ)] を選択します。

  4. シークレット名 に、ディレクトリ ID を含むシークレット名を次の形式で入力し、d-xxxxxxxxx をディレクトリ ID で指定します。

    aws/directory-services/d-xxxxxxxxx/seamless-domain-join

    これは、アプリケーション内のシークレットを取得するために使用されます。

    注記

    aws/directory-services/d-xxxxxxxxx/seamless-domain-join そのまま入力する必要がありますが、d-xxxxxxxxxx ディレクトリ ID を入力します。先頭または末尾にスペースがないことを確認します。スペースがあると、ドメイン結合が失敗します。

    左 AWS Secrets Manager シークレットの設定ページの コンソール。シークレット名が入力され、強調表示されます。
  5. それ以外はすべてデフォルトのままにして、[Next] (次へ) をクリックします。

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

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

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

  8. リストから新しく作成したシークレット名を選択し、シークレットARN値を書き留めます。これは次のセクションで必要になります。

ドメインサービスアカウントシークレットのローテーションを有効にする

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

ドメインサービスアカウントシークレットのローテーションを有効にするには

必要なIAMポリシーとロールを作成する

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

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

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

Secrets Manager のIAM読み取りポリシーを作成するには
  1. にサインインする AWS Management Console IAM ポリシーを作成するアクセス許可を持つユーザーとして。次に、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

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

  3. [Create policy] を選択します。

  4. 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" ] } ] }
  5. 完了したら、[Next] を選択します。構文エラーがある場合は、ポリシーバリデータが報告します。詳細については、IAM「ポリシーの検証」を参照してください。

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

注記

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

LinuxEC2DomainJoin ロールを作成する

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

LinuxEC2DomainJoin ロールを作成するには
  1. にサインインする AWS Management Console IAM ポリシーを作成するアクセス許可を持つユーザーとして。次に、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/

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

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

  4. 「信頼されたエンティティのタイプを選択」で、「」を選択します。 AWS サービス

  5. ユースケース で を選択しEC2次へ を選択します。

    信頼されたエンティティの選択ページのIAMコンソールで。 AWS サービス と EC2 が選択されます。
  6. [Filter policies] (フィルターポリシー) で、以下を実行します。

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

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

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

    4. 上記の 3 つのポリシーを追加したら、[ロールを作成] を選択します。

    注記

    mazonSSMDirectoryServiceAccess は、インスタンスを に結合するためのアクセス許可を提供します。Active Directory によって管理されます AWS Directory Service。 mazonSSMManagedInstanceCore は、 を使用するために必要な最小限のアクセス許可を提供します。 AWS Systems Manager サービス。これらのアクセス許可を持つロールの作成、およびロールに割り当てることができるその他のアクセス許可とポリシーの詳細については、「」の「Systems Manager のIAMインスタンスプロファイルを作成するIAM」を参照してください。 AWS Systems Manager ユーザーガイド

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

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

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

  10. [ロールの作成] を選択します。

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

Linux インスタンスをシームレスに結合するには
  1. にサインインする AWS Management Console で Amazon EC2コンソールを開きますhttps://console.aws.amazon.com/ec2/

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

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

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

  5. (オプション) 追加タグを選択して、このEC2インスタンスへのアクセスを整理、追跡、または制御するタグキーと値のペアを 1 つ以上追加します。

  6. アプリケーションと OS イメージ (Amazon マシンイメージ) セクションで、起動する Linux AMI を選択します。

    注記

    AMI 使用する には が必要です AWS Systems Manager (SSM エージェント) バージョン 2.3.1644.0 以降。その からインスタンスを起動AMIして にインストールされている SSM エージェントバージョンを確認するにはAMI、「現在インストールされている SSM エージェントバージョンの取得」を参照してください。SSM エージェントをアップグレードする必要がある場合は、「Linux 用EC2インスタンスでのSSMエージェントのインストールと設定」を参照してください。

    SSM は Linux インスタンスを に結合するときにaws:domainJoinプラグインを使用します。Active Directory ドメイン。プラグインは Linux インスタンスのホスト名を EC2AMAZ- の形式に変更します。XXXXXXXaws:domainJoin の詳細については、「」を参照してください。AWS Systems Manager の コマンドドキュメントプラグインリファレンス AWS Systems Manager ユーザーガイド

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

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

    重要

    プライベートキーのファイルを保存できるのは、このタイミングだけです。

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

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

    インターネットゲートウェイに接続する方法の詳細については、「Amazon ユーザーガイド」の「インターネットゲートウェイを使用してインターネットに接続する」を参照してください。 VPC

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

    パブリック IP アドレス指定とプライベート IP アドレス指定の詳細については、「Amazon ユーザーガイド」の「Amazon EC2インスタンス IP アドレス指定」を参照してください。 EC2

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

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

  14. [高度な詳細] セクションを選択し、[ドメイン結合ディレクトリ] ドロップダウンリストからドメインを選択します。

    注記

    ドメイン結合ディレクトリを選択すると、以下が表示されることがあります。

    ドメイン結合ディレクトリを選択したときのエラーメッセージ。既存のSSMドキュメントにエラーがあります。

    このエラーは、EC2起動ウィザードが予期しないプロパティを持つ既存のSSMドキュメントを特定した場合に発生します。次のいずれかを試すことができます。

    • 以前にSSMドキュメントを編集し、プロパティが想定されている場合は、閉じるを選択して変更なしでEC2インスタンスを起動します。

    • 既存のSSMドキュメントを削除するリンクを選択して、SSMドキュメントを削除します。これにより、正しいプロパティを持つ SSMドキュメントを作成できます。SSM ドキュメントは、EC2インスタンスの起動時に自動的に作成されます。

  15. IAM インスタンスプロファイル では、「前提条件」セクションの「ステップ 2: Linux IAMロール を作成する」で以前に作成したロールを選択します。 EC2DomainJoin

  16. Launch instance (インスタンスの起動) を選択します。

注記

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