スキップしてコンテンツを表示

EC2 Linux インスタンスに SSH でアクセスできるユーザー AWS アカウントを、cloud-init とユーザーデータを使用して新たに追加する方法を教えてください。

所要時間2分
0

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに SSH 経由で接続できる、追加ユーザーを作成したいと考えています。

簡単な説明

次のタスクを実行するユーザーデータコマンドを用意します。

  • 新しいユーザーを作成します。
  • そのユーザーに sudo 権限を付与します。
  • authorized_keys ファイルに SSH パブリックキーを追加します。

解決策

重要: インスタンスを変更する前に、次の項目を確認してください。

次の手順を実行します。

  1. SSH または Session Manager を使用してインスタンスにログインします。

  2. cloud-init がインストールされているかどうかを確認するには、次のコマンドを実行します。

    $ cloud-init -v

    コマンドがエラーを返す場合は、次のコマンドを実行して Linux ディストリビューションにインスタンスをインストールします。

    Debian ベースのインスタンス

    $ sudo apt-get install cloud-init

    RPM ベースのインスタンス

    sudo dnf install cloud-init

    Suse インスタンスの

    zypper install cloud-init
  3. cloud-init のインストールを確認した後、インスタンスの停止を続行します。
    注: Stop アクションを実行できない場合は、そのインスタンスは停止済み、またはインスタンスのルートデバイスはインスタンスストアボリュームです。

  4. 新しいユーザーに接続するためのパブリックキーを、プライベートキーから生成します。
    注: パブリックキーを取得するには、キーペアまたはプライベートキーが必要です。キーペアの作成方法については、「Amazon EC2 インスタンス用のキーペアを作成する」を参照してください。SSH のセキュリティを高めるには、EC2 コンソールまたはサードパーティ製ツールを使用してキーペアを作成することをおすすめします。
    パブリックキーを取得するには、次のコマンドを実行します。プライベートキーにパスフレーズが設定されている場合は、求められた際、そのパスフレーズを入力します。

    $ ssh-keygen -f <private_key_file> -y
  5. 次のコマンドにパブリックキーを挿入し、このコマンドを使用して user-data フィールドを更新します。
    インスタンスを選択します。
    ナビゲーションペインで [アクション] を選択し、[インスタンス設定] を選択します。
    [ユーザーデータの編集] を選択し、スクリプトをフィールドに貼り付けます。
    注: プレースホルダーの username を目的のユーザー名に置き換えてください。ssh-rsa AB3nzExample にパブリックキーを入力してください。Debian インスタンスを使用する場合は、groups の値を wheel から sudo に変更します。

    #cloud-config
    cloud_final_modules:
    - [users-groups,always]
    users:
      - name:username
        groups: [ wheel ]
        shell: /bin/bash
        sudo: ["ALL=(ALL) NOPASSWD:ALL"]
         ssh-authorized-keys:
         - ssh-rsa AB3nzExample

    上記のコマンドでは、無制限アクセスが付与されたユーザーが作成されます。そのユーザーの sudo アクセスをブロックするには、sudo の値を false に設定します。詳細については、cloud-init のウェブサイトで「クラウド構成の例」を参照してください。
    注: デフォルトでは、cloud-init ディレクティブはインスタンスの起動時にのみ実行されます。ただし、このユーザーデータスクリプトを使用すると、cloud-init はインスタンスが再起動または再開するたびにパブリックキーをインスタンスに追加します。ユーザーデータスクリプトを削除すると、デフォルトの機能が復元されます。

  6. [保存] を選択します。

  7. [アクション] を選択し、[インスタンスの状態] を選択した後、[開始] を選択します。

  8. インスタンスが running ステータスに移行した後、新しいユーザーでログインします。新しいユーザーのデフォルト動作は、ec2-user と同じです。
    注: ModifyInstanceAttribute API アクションを使用すると、インスタンスのユーザーデータを更新できます。このアクションを制限する AWS Identity and Access Management (IAM) ポリシーを作成します。

関連情報

キーペアの表示

SSH アクセスが可能な新しいユーザーアカウントを EC2 Linux インスタンスに追加する方法を教えてください

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ