Linux と macOS インスタンスの Run As サポートを有効にする - AWS Systems Manager

Linux と macOS インスタンスの Run As サポートを有効にする

デフォルトでは、セッションは、マネージドインスタンスで作成されたシステム生成の ssm-user アカウントの認証情報を使用して起動されます。(Linux および macOS マシンでは、このアカウントは /etc/sudoers/ に追加されます)。代わりに、オペレーティングシステム (OS) アカウントの認証情報を使用してセッションを起動できます。ログイン制限などの OS レベルやディレクトリポリシーは、OS アカウントに適用されない場合があります。これは、セッションは AWS Identity and Access Management (IAM) によって認証され、指定した OS アカウントのコンテキスト内で実行されるためです。セッションの開始前に、AWS Systems Manager Session Manager は指定された OS アカウントが存在することを確認します。存在しない OS アカウントを指定すると、セッションは開始しません。Session Manager では 2 つの方法で、使用するオペレーティングシステムアカウントを指定できます。

方法 1: IAM ユーザーまたはロールにタグ付けする (推奨)

IAM ユーザーまたは関連するロールに AWS 提供のキー名 SSMSessionRunAs をタグ付けし、その値として OS ユーザー名を指定することにより、セッションを開始するために使用されるオペレーティングシステムユーザーアカウントを指定できます。たとえば、OS のユーザーアカウント名が DevRoleLogin の場合、対応するタグとして SSMSessionRunAs = DevRoleLogin を使用します。

この方法を使用すると、タグ付けする IAM ユーザーまたはロールごとに異なる OS アカウント名を指定したり、すべてに同じ OS ユーザー名を使用したりできます。

IAM エンティティのタグ付けの詳細については、次のトピックを参照してください。

方法 2: Session Manager 設定で OS ユーザー名を指定する

コンソールまたは Session Manager (AWS Command Line Interface) を使用して AWS CLI を設定する際、セッションを開始するオペレーティングシステムのユーザー名を指定できます。

この方法を使用すると、Session Manager を使用してインスタンスに接続するアカウント内のすべての IAM ユーザーに対して、すべてのセッションが同じ OS ユーザーによって実行されます。

仕組み

セッションの Run As サポートを有効にすると、システムによってアクセス許可が次のように確認されます。

  1. セッションを開始しているユーザーの IAM ユーザーアカウントまたはロールに SSMSessionRunAs = os-user-account-name タグが付いていますか?

    付いている場合、ユーザー名はインスタンスに存在しますか? 存在する場合は、セッションを開始します。存在しない場合は、セッションの開始を許可しないでください。

    IAM ユーザーのアカウントまたはロールに SSMSessionRunAs = os-user-account-name タグが付いていない場合は、ステップ 2 に進みます。

  2. IAM ユーザーのアカウントまたはロールに SSMSessionRunAs = os-user-account-name タグがついていない場合、 AWS アカウント の Session Manager 設定で OS ユーザー名が指定されていますか?

    付いている場合、ユーザー名はインスタンスに存在しますか? 存在する場合は、セッションを開始します。存在しない場合は、セッションの開始を許可しないでください。

    この時点で、Session Manager は、デフォルトの ssm-user アカウントにフォールバックしません。つまり、Run As サポートを有効にすると、インスタンスの ssm-user アカウントを使用してセッションを開始することはできません。

Run As support for Linux および macOS インスタンスを有効にするには

  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Session Manager] を選択します。

  3. [Preferences (設定)] タブを選択してから、[Edit (編集)] を選択します。

  4. [Enable Run As support for Linux instances] の横にあるチェックボックスをオンにします。

  5. 次のいずれかを行ってください。

    • オプション 1: (オプション) [Enter an operating system user name for starting sessions] に、セッションの開始に使用するターゲットインスタンスのオペレーティングシステムのユーザーアカウントの名前を入力します。

    • オプション 2: [IAM コンソール] リンクを選択します。ナビゲーションペインで、[ユーザー] または [ロール] を選択します。タグを追加するエンティティ (ユーザーまたはロール) を選択し、[タグ] タブを選択します。キー名に「SSMSessionRunAs」と入力します。キー値のターゲットインスタンスのユーザーアカウントの名前を入力します。[Save changes] を選択します。

      次に例を示します。

      
                                        Session Manager Run As アクセス許可のタグを指定したスクリーンショット。Key = SSMSessionRunAs,Value=My-OS-User-Name
  6. [Save] を選択します。