manatee-itの備忘ログ

プログラム初心者のブログ。ruby on railsでWebサービスを作成中。(仕事が忙しくなかななか進まず) つまずいた所をなんでも記録。 環境:Ruby2.1 + Rails4.1.1 + Passenger + CentOS6.4(Apache + sqlite/MySQL)

aws-ec2-ssh利用メモ

■まえおき
aws-ec2-sshを利用してAWS IAMユーザとLinuxOSユーザの紐付け管理を可能とする手順のメモ。
後述のURLを参考させていただきました。

■手順

1.EC2のLinuxOS上の作業
・Git(パッケージ版)をインストール
AWS CLIをインストール
aws-ec2-sshのgitクローンを作成
aws-ec2-sshディレクトリにあるファイルの中身をいろいろ確認する

2.AWS マネコン上の作業
・IAMユーザ、IAMグループ作成
・IAMロール(iam_ssh_policy.jsonを含む)をEC2に付与
・IAMユーザ毎に公開鍵を作成し、アップロード登録

3.aws-ec2-sshのインストール
・/etc/aws-ec2-ssh.conf設定
aws-ec2-sshのインストール
・OS上にユーザが作成されていることを確認
・各IAMユーザ名でログイン
・管理者権限ユーザについてはsudoでrootにスイッチできることを確認

■仕組み
調べた範囲で記載

○「import_users.sh」の設定
CLIコマンドでIAM情報取得(aws iam xxx)とOSユーザ設定
・管理者ユーザのsudo設定
 # cat /etc/sudoers.d/(管理者ユーザ名)
 (管理者ユーザ名) ALL=(ALL) NOPASSWD:ALL

○ログイン時の認証について
 OSユーザの.ssh配下にある公開鍵の代わりに、/opt/authorized_keys_command.shに
 記載されたCLIコマンド(aws iam get-ssh-public-key)実行にて、IAMユーザ毎に
 IAMに登録した公開鍵を取得する。
 # cat /etc/ssh/sshd_config | grep AuthorizedKeysCommand
 AuthorizedKeysCommand /opt/authorized_keys_command.sh
 AuthorizedKeysCommandUser nobody

■その他

各IAMユーザが公開鍵をIAMにアップロード登録する権限として、以下のポリシーなどを適宜アタッチしておく。

・ReadOnlyAccess

・IAMUserSSHKeys (ユーザ自身のみSSHキー管理が可能となる)

■参考URL
aws-ec2-sshでEC2の踏み台サーバのユーザ管理を楽にする
https://qiita.com/bigplants/items/f2d4d15922d87c0d25e4

やってみた~aws-ec2-sshでEC2の踏み台サーバのユーザ管理を楽にする~
https://hedgehogweeklyreport.hatenablog.com/entry/2018/12/08/115746