AWS SSM Session Managerを利用して、パブリックネットワークIPなし、キーレス安全ログインEC2を実現します
従来のクラウドサーバの輸送次元では、Linux EC2にログインする必要があります。標準的な構成は、通常、サーバにパブリックネットワークIP (またはNATゲートウェイ) をバインドし、セキュリティグループで公開します
TCP:22
ポート、SSHキー (
.Pem
ファイル) 、最後に端末で接続します。
しかし、この十数年の標準的なプロセスは、現代の企業レベルの安全規範の下で、大きな挑戦に直面している
パブリックネットワーク裸奔走リスク: 22ポートを開いていれば、デフォルトのポートを変更しなくても、毎日何千ものハッキングスクリプトが狂ったようにスキャンし、暴力的に解読されている。
鍵管理災害: 鍵ファイルが複数の開発や運送次元に配布されると、従業員が退職しても破棄されず、鍵が誤って公共GitHubに渡された重大なセキュリティ事故が発生しやすい。
コストが高い: サーバーにパブリックネットワークIPを配布しないために、多くのチームは要塞機 (Jumpbox) にお金をかけたり、複雑なVPNトンネルを配置したりして、日常予算を大幅に増やした。
AWSシステムには、次元を下げる打撃と言える無料の高級な遊び方があり、上のすべての痛点を完璧に殺すことができます。
AWS Systems Manager Session Manager (セッションマネージャ)
。
今日は複雑な安全理論を使わない。ハンドルはあなたを連れて全プロセスを実現します。
サーバはパブリックネットワークIPを必要とせず、セキュリティグループはポートを開けず、ローカルは.pemキーファイルを必要としない
EC2端末に安定してログインできます。
第一段階: 深さ分解、Session Managerの「逆接続」黒技術
なぜパブリックネットワークのIPと22ポートが必要ないのか、私たちはサーバにリモートで接続できますか?
従来のSSHログインは
順方向接続
: あなたのパソコンはクライアントとして、積極的にパブリックネットワークを通って、EC2サーバの22ポートのドアをノックします。サーバにはパブリックネットワークの入り口が必要で、ドアは開けなければならない。
Session Managerは
逆方向接続
ロジック:
あなたのEC2サーバの内部には、SSMエージェントという公式の小さなデーモンがインストールされています。
このプロセスは外部トラフィックが入ってくる必要はなく、自分は積極的に内向的で、HTTPS(443ポート) を介してAWS公式SSMサービス側と安全な双方向の持続的な接続を確立します。
AWSコンソールにログインしたり、ローカルのAWS CLIを介してサーバに接続したい場合は、まずAWS SSMサービス側に送信し、サービス側は先ほど作成したイントラネットパイプラインを介してEC2内部のエージェントにコマンドを渡して実行する。
コアセキュリティの結論: トラフィックはすべて内向的に発信されているので、EC2セキュリティのインポートルールは完了できます
完全に空にして (すべての受信ポートを完全にオフにして) 、ハッカーが検出器を持っていてもサーバの存在が見つからず、安全に直接いっぱいになった。
第二段階: 実戦演習一 ― EC2に話す権利を与える (IAM役割配置)
EC2はAWSのSSMサービス側に積極的に接続するには、あなたのライセンスを取得する必要があります。AWSでは、リソースに許可された唯一の許可証は
IAM Role (idとアクセス管理ロール)
。
AWSコンソールにログインし、検索してIAMサービスに入ります。
左側のメニュー「ロール」-> 「ロールを作成」をクリックします。
信頼される実体タイプは「AWSサービス」を選択し、サービスまたはユースケースはEC2を選択します。「次へ」をクリックします。
権限ポリシーの追加 (キー): 検索ボックスにamazon ssmmanagedinstancecore (AWS公式Session Manager専用にカスタマイズされた最小化コア権限ポリシー) と入力し、チェックします。
「次へ」をクリックして、EC2-SSM-Access-Roleなどのキャラクターに名前を付け、「作成」をクリックします。
第三段階: 実戦演習二 -- 「全面閉鎖」のプライベートEC2を起動する
基礎ができたので、私たちは今、サーバーを引っ張って実際のテストをします。
EC2コンソールに入り、「インスタンスの起動」をクリックします。
システムミラーリング (AMI): 最新のAmazon Linux 2023またはAmazon Linux 2を選択することを強くお勧めします。ピットヒント: この2つのシステムはデフォルトでインストールされ、起動してSSMエージェントを起動しています。手動でコマンドを叩いてインストールする必要はありません。オリジナルのUbuntuやCentOSを選んだ場合は、起動後にaptやyumでSSMエージェントソフトウェアを手動でインストールする必要があります。
インスタンスタイプ: 無料レベルのt3.マイクロを選んでください。
鍵ペア (Key pair): ドロップダウンメニューで「鍵ペアなしで続ける」を直接選択します。
ネットワーク設定 (コストとセキュリティ精算): パブリックネットワークIPの自動割り当て: 「無効」を選択します。パブリックネットワークのIPは必要ありません。セキュリティグループインバウンドルール: デフォルトの「SSH 22ポートを許可する」ルールを直接ゴミ箱をクリックして削除します。ステーション入りのルールを空っぽに保つ。
高度な詳細 (魂を注ぐ): 下をめくって、「IAMインスタンスプロファイル」を見つけます。ドロップダウンメニューで、第2段階で作成したEC2-SSM-Access-Roleを正確に選択します。
「インスタンスの起動」をクリックします。
第四段階: 奇跡を目撃する時 ―― 三つの高エネルギー登録方式
サーバーが起動してから2 ~ 3分後に、基盤となるSSM Agenを確保
Tはクラウドに接続することに成功しました。どうやってシステムに入るか見てみましょう。
方式1: コンソールはワンクリックで直接 (怠け者のお気に入り)
EC2インスタンスのリストで、あなたが作ったばかりのパブリックネットワークがなく、ポートがないサーバを選択します。
上部の「Connect」をクリックします。
「セッションマネージャ」タブページに切り替えます (正しく構成されているため、グレーの「接続」ボタンが点灯していることがわかります)。
「接続」をクリックします。ブラウザは瞬時に純粋な黒のネイティブ端末をポップアップします。あなたはすでにssm-user権限で、sudo su-を実行してrootの完璧なコントロールディスクに直接権限を与えます。
方式2: ローカル端末直接接続 (専門運送次元フロー)
多くのベテラン運送次元はブラウザでコードを書くのが好きではなく、ローカルのローカル端末 (Mac Terminal、iTerm2、Windows PowerShellなど) に慣れている。大丈夫です。Session Managerもサポートしています。
ローカルコンピュータにAWS CLIツールがインストールされており、aws configureを介して個人のIAMアクセスキーが構成されていることを確認します。
ローカルコンピュータには、Session Manager Pluginという無料の小さなプラグインを追加する必要があります。
ローカルの端末を開いて、この行のコマンドを直接叩いてください (インスタンスIDを自分のものに変更してください):Bashaws ssm start-session -- target i-0123456789abcdef0には鍵のヒントはありません。パスワードを入力する必要はありません一秒後、あなたのローカル端末は直接宇宙を越えて、そのパブリックネットワークIPのないクラウドサーバの内部にアクセスした。
第5段階: 企業レベルの高度な監査 -- 誰が私のサーバで何をしたのですか?
Session Managerが図のためだけに手間を省くと思ったら、AWSの大手工場の規範を軽視した。金融、証券などの高コンプライアンスが企業に人気を求めている核心的な原因は、それが持っていることである
完璧な死角のない監査ライン
。
従来のSSHログインでは、開発者が何かのファイルを削除したり、何かの構成を変更したりして、システム内部でログダンプを大幅に配信しない限り、追跡が難しい。
AWS Systems Managerの設定では、セッションログを直接配信するように設定できます
S3バケットに配信: ユーザーが端末で叩いたすべてのコマンド、画面に印刷されたすべての文字 (チェックアウト、エラーを含む) は、リアルタイムで暗号化されたテキストファイルとして記録されますs3にアップロードして永久に保存します。
クラウドウォッチログに配信: リアルタイムのログ警告を実現します。
最高の権限を持つ運送次元がサーバで実行されたとしても
R
M-rf
、彼はS3監査バレルに飛んだ鉄証を削除することもできない。誰が操作をしたのか、いつやったのか、調べてみると、最も厳しいコンプライアンス監査要求を満たしている。
第六段階: 日常輸送のピット血涙歴
接続のヒント「インスタンスが登録されていないか、オンラインになっていない」: サーバを新たに引き上げた後、コンソール接続ボタンがグレーになっていることが発見された場合、99% はあなたのプライベートサブネットが完全に切断されたためです。SSMエージェントは内向的に要求されているが、プライベート・サブネットにNATゲートウェイもVPC Endpointsも配置されていない場合エージェントはAWS公式ドメイン名のHTTPSトラフィックが出ないと、完全に失われます。プライベートネットワークがAWSサービスのパブリックドメイン名に少なくとも接続できるようにするか、VPC内にssm、ssmmessage、ec2messageという3つのVPC端末ノードを新設する。
権限カードがあまりにも死んでチームが協力できなくなった: Session Managerは.pemファイルを認識しなくなり、個人のAWS IAMユーザー権限を認識した。新しく来た開発張さんがこのマシンにログインできるようにするには、IAMで個人のアカウントに、このEC2インスタンスに対してssm:StartSessionを実行できるポリシーを追加する必要があります。物理鍵の配布をIAMで完全に置き換えることが、現代のクラウドの原始的な正しい道である。
まとめ
AWS SSM Session Managerを利用してEC2にログインし、本質的には
現代認証 (IAM) は古いネットワーク認証 (22ポートと物理キー) に取って代わる
。この無料の黒科学技術を使って、不要な要塞機とパブリックネットワークのIP予算を切り倒すだけでなく、クラウドのインフラをパブリックネットワーク上で「瞬間的に隠れる」ことができる。安全と便利さを兼ね備えています。これこそ優雅で本格的な雲上輸送標準姿勢です。
