Amazon Web Services ブログ

Linux インスタンスを Microsoft Active Directory 用の AWS Directory Service にシームレスに結合する

多くのお客様が、Active Directory を使用して、さまざまなアプリケーションやサービスに対する一元的なユーザー認証と承認を管理しています。このようなお客様にとって、Active Directory は IT Jigsaw における重要な要素です。

AWS では、Microsoft Active Directory 用の AWS Directory Service を提供しています。このサービスは、実際の Microsoft Active Directory に基づいて構築された、可用性と耐障害性のある Active Directory サービスをお客様に提供します。AWS は、Active Directory の実行に必要なインフラストラクチャを管理し、必要なパッチ適用とソフトウェアの更新をすべて処理します。たとえば、フルマネージド型でドメインコントローラに障害が発生した場合、モニタリングによって障害が発生したコントローラを自動的に検出し、置き換えることができます。

マシンを Active Directory に手動で接続するのはありがたい作業です。コンピュータに接続し、手動で一連の変更を行ってから、再起動を実行する必要があります。特に難しいことはありませんが、この作業には時間がかかるため、搭載したいマシンが複数台ある場合はすぐに時間の無駄につながります。

本日、チームは、Linux EC2 インスタンスが起動時に、Microsoft Active Directory 用の AWS Directory Service にシームレスに接続できる新機能を発表しました。これは、Windows EC2 インスタンスが起動されるときにシームレスにドメインに結合できるようにする既存の機能を補完するものです。この機能により、お客様はより迅速な移行が可能になり、管理者の体験が向上します。

これで、Windows インスタンスと Linux EC2 インスタンスの両方が Microsoft Active Directory 用の AWS Directory Service にシームレスに接続できるようになりました。ディレクトリは、自分のアカウントにあるか、別のアカウントから共有することができます。ただし、インスタンスとディレクトリの両方が同じリージョンに存在する必要があることにご注意ください。

プロセスの仕組みを示すために、既存の Microsoft Active Directory 用の AWS Directory Service を使用して、そのディレクトリ Linux EC2 インスタンスをシームレスに結合させるうえで必要な手順を説明します。

AD 認証情報の作成と保存
AWS マネージド Active Directory ドメインに Linux マシンをシームレスに結合するには、インスタンスをドメインに結合させるアクセス許可を持つアカウントが必要です。AWS 委任管理者のメンバーは、マシンをドメインに結合するのに十分な権限を持っていますが、必要最低限の権限を持つサービスアカウントを作成しました。当社のドキュメントでは、この種のサービスアカウントを作成する方法について説明します。

シームレスなドメイン結合機能では、Active Directory サービスアカウントの認証情報を把握しておく必要があります。これを実現するには、AWS Secrets Manager を使ってシークレットを作成し、シームレスなドメイン機能でインスタンスをディレクトリに結合するために使用するシークレットキーを作成する必要があります。

AWS Secrets Manager コンソールの次の画面で [Store a new secret (新しいシークレットを保存)] ボタンをクリックし、シークレットタイプを選択するように求められたら、[Other type of secrets (その他のタイプのシークレット)] を選択します。2 つのシークレットキー/値を今すぐ追加できるようになりました。awsSeamlessDomainUsername と呼ばれる最初のキーでは、値のテキストボックスに Active Directory サービスアカウントのユーザー名を入力します。awsSeamlessDomainPassword と呼ばれる 2 番目のキーでは、サービスアカウントのパスワードを入力します。

これは実演なので、シークレットに DefaultEncryptionKey を使用することを選択しましたが、独自のキーを使用することもできます。

[Next (次へ)] をクリックすると、シークレットに名前を付けるように求められます。以下の名前を追加し、d-xxxxxxxxx をディレクトリ ID に置き換えます。

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

この名前の入力を間違えた場合、または先頭または末尾にスペースがある場合、ドメイン結合は失敗します。

IAM ポリシーを作成するときに必要なシークレット ARN を書き留めます。

必要な IAM ポリシーとロールの作成
今度は、シームレスドメイン結合シークレットを読み取るアクセス許可を与える IAM ポリシーを作成する必要があります。

IAM コンソールにサインインし、[Policies (ポリシー)] を選択します。コンテンツペインで、[Create policy (ポリシーの作成)] を選択します。[JSON] タブに切り替えて、次の JSON ポリシードキュメントからテキストをコピーし、Secrets Manager 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 (レビュー)] ページで、ポリシーに「SeamlessDomainJoin-Secret-Readonly」という名前を付け、[Create policy (ポリシーの作成)] を選択して作業内容を保存します。

今度は、このポリシー (および他のいくつか) を使用する IAM ロールを作成する必要があります。IAM コンソールで [Roles (ロール)] を選択し、コンテンツペインで [Create role (ロールの作成)] を選択します。[Select type of trusted entity (信頼できるエンティティのタイプを選択)] で、[AWS service (AWS サービス)] をクリックし、ユースケースとして EC2 を選択し、[Next:Permissions (次へ: アクセス許可)] をクリックします。


私のロールにいくつかのポリシー (AmazonSSMManagedInstanceCoreAmazonSSMDirectoryServiceAccess、および SeamlessDomainJoin-Secret-Readonly) を適用します。

私は [Role name (ロール名)] を要求する [Review (レビュー)] 画面に移動し、ロールを EC2DomainJoin と呼びましたが、好きな名前を付けることができます。次に、画面の右下にあるボタンを押してロールを作成します。

Amazon マシンイメージの作成
後で Linux インスタンスを起動するときは、Linux Amazon マシンイメージ (AMI) をテンプレートとして選択する必要があります。現在、デフォルトの Linux AMI には、この新しいシームレスドメイン機能が必要とする AWS Systems Manager エージェント (SSM エージェント) のバージョンは含まれていません。したがって、更新された SSM エージェントで AMI を作成する必要があります。これを行うには、まずアカウントに新しい Linux インスタンスを作成し、SSH クライアントを使用して接続します。次に、SSM エージェントを 2.3.1644.0 以降に更新するためのドキュメントに基づいて進めます。インスタンスの更新が完了したら、次のドキュメントを使用して、このインスタンスに基づいた新しい AMI を作成できます。

今、私の下には次のステップで使用できる新しい AMI があります。これからベース AMI は新しい SSM エージェントを使用するように更新されるため、今後はこのセクションをスキップできます。インスタンスが使用している SSM エージェントのバージョンを知りたい場合は、このドキュメントで確認方法を説明します。

シームレス結合
まず、Linux インスタンスを作成する必要があるので、EC2 コンソールに移動して、[Launch Instance (インスタンスの起動)] を選択します。

次に、Linux Amazon マシンイメージ (AMI) を選択します。先ほど作成した AMI を選択します。

インスタンスを設定するときは、自分のディレクトリを含む Amazon Virtual Private Cloud を選択するようにお気をつけてください。[Domain join directory (ドメイン結合ディレクトリ)] というラベルのドロップダウンを使用して、このインスタンスを結合するディレクトリを選択できます。

IAM ロールで、先ほど作成した EC2DomainJoin ロールを選択します。

このインスタンスを起動すると、シームレスにディレクトリに結合されます。インスタンスがオンラインになったら、SSH を使用して Microsoft Active Directory 用 AWS Directory Service の管理者認証情報を使用してインスタンスに接続することで、すべてが正しく動作していることを確認できます。

この新機能は、本日からご利用いただけます。この新機能についてのご意見をお待ちしております。

結合をお試しください

– Martin