EC2 web-server に IAMロールをアタッチして接続

このLabでは、SSH接続を利用せずに、AWS マネジメントコンソールから Webサーバー (EC2 インスタンス webserver#user-1 ならびに webserver#user-2) にシェルアクセスができるように、事前準備を行います。

EC2 インスタンス用 IAMロールの作成

  • 画面上部の検索ボックスに iam と入力し、表示されるサービスのIAMをクリックします

02

  1. 画面左のメニュー ロール をクリックします
  2. ロールの作成 をクリックします
  • ロールの作成画面で、以下のように設定して作成します。
  1. 信頼されたエンティティ で、初期設定の AWS サービス が選択されていることを確認します (もし異なる場合は選択します)
  2. ユースケースの選択 で、 「一般的なユースケース」の下に表示されている EC2 をクリックして選択します
  3. 次のステップ:アクセス権限 をクリックします
  4. ポリシーのフィルタ の右の検索ボックスに SSM と入力し、フィルタ表示された中の AmazonEC2RoleforSSM の左のチェックボックスをオンにしたのち、次のステップ:タグ をクリックします。

02

  • タグの追加(オプション) では そのまま 次のステップ:確認 をクリックします
  • 確認画面で、以下のように設定します。
  1. ロール名に EC2InstanceSSMRole と入力します
  2. ポリシーに AmazonEC2RoleforSSM が表示されていることを確認します。
  3. ロールの作成 をクリックします
  • ロールの作成に成功したことを確認したら、続けて今作成したIAMロールの内容を更新します。

  • 検索ウィンドウに SSMRole と入力して、表示される EC2InstanceSSMRole をクリックします

02

  • 信頼関係 タブをクリックし、信頼関係の編集 をクリックします

02

  • 表示される ポリシーエディタ の テキストボックス の内容を、以下の内容で 全て上書き し、信頼ポリシーの更新をクリックします
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ssm.amazonaws.com",
          "ec2.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
  • 表示された 信頼関係タブ 内 の 信頼されたエンティティ に、以下の 2つ が IDプロバイダーとして表示されていることを確認します
    1. ssm.amazonaws.com
    2. ec2.amazonaws.com

02

EC2 インスタンス への IAMロールの設定

  • EC2 コンソールを表示します。

  • 以下の手順で、これまでのハンズオンで作成した webserver#1-user1 にIAMロール EC2InstanceSSMRole をアタッチします
  1. 画面左のメニューで インスタンス をクリックします。
  2. webserver#1-user1 を選択します
  3. アクション > セキュリティ > IAMロールを変更 をクリックします

  1. IAMロール に 作成した EC2InstanceSSMRole を選択し、保存 をクリックします

  1. 同じ手順で、これまでのハンズオンで作成した webserver#2-user1 にも同じIAMロール EC2InstanceSSMRole をアタッチします (手順詳細は省略)

変更が反映されるまで、1分ほど待機します。

EC2 インスタンス

  1. インスタンス一覧で、 webserver#1-user1 (のみ)を選択した状態にします
  2. 接続 をクリックします

  1. 表示されるダイアログで セッションマネージャー タブをクリックします
  2. ダイアログ右下の 接続 をクリックします
    • 接続 ボタンがアクティブになっていない場合は、IAMロールの作成内容 が適切でない、あるいはもう少し時間が経過する必要がある場合があります。

  • ブラウザ上の別タブ (もしくは別ウィンドウ) で、AWS Systems Manager Session Manager の機能により、Linux OS 上の ssm-user ユーザーとして、EC2 インスタンス webserver#1-user1 に接続(ログイン) できたことを確認してください。
  • (以降、このハンズオンのコマンドライン操作はこのウィンドウで行ってください)

この AWS Systems Manager Session Manager を利用した接続にはいくつかの 前提 があり、単にこのIAMロールをEC2インスタンスにアタッチすればよいという訳ではありません。今回のハンズオン環境においては、webserver#1-user1 と webserver#2-user1 の EC2 インスタンス への接続に関しては この 前提 を満たしているため利用可能です。