ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

AWSでec2-windowsホストのパスワード特定

昔からやってて今更やけどメモ。書きかけてたの忘れてた。 EC2-windowsホストからパスワード取得 インスタンスの、アクション->セキュリティ->windowsパスワードを取得、で画面遷移 pemファイルは1つめのec2作る時に一緒に作るから、ダウンロードしたものを用意しておいて、画面の「プライベートキーファイルのアップロード」で選択してアップロードする。 復号化すると、次の画面にパスワードが見えるのでコピーしてテキストファイルにでも貼り付けて残す。 ※いったん取得すると連続では取得できず、4分程度待つ必要がある

 ⭐️

AWSでsshトンネリング前提の構成

数年前からやってて今更やけどメモ。書きかけてたの忘れてた。 パブリックサブネットにec2-linuxホスト立てて、プライベートサブネットにec2-windowsホスト作ったとき、linuxを踏み台にしてwindowsホストにrdp接続できるようになる。 VPCとかサブネットとかセキュリティグループとか、チョー苦手。 VPCの中のサブネットをパブリックとプライベートに分ける サブネットのうち、パブリック(sub1)のほうにインターネットゲートウェイつける。 プライベート(sub2)にNATゲートウェイつけといて、インターネットへ出れるようにする。 作る方針はこう。 パブリックのサブネットはインターネットからの入り口やから、グローバルIPアドレスを特定のIPにだけssh許す プライベートのサブネットは外部から入らせず、パブリックのサブネットからのみ接続を許す 社内ネットとVPN接続したりdirect connect(あんまりよう知らん)するなら、dnsとかルーティングを社内に向けるからNATゲートウェイいらん 社内ネットがあるなら、そこも接続を許して社内ネットは許可されたら踏み台経由せんでもrdpできるようにする 構成を考えてメモするとイメージ湧きやすい。今はリソースマップで見せてくれる。 マウスオーバしたら、ここでは青色でルートテーブルとゲートウェイをハイライトしてくれる。 接続を許すには、ec2のセキュリティグループでsshとかrdpのポートを許可しとく。 許可するIPをグループ指定できるのが、VPCのカテゴリにあるManaged prefix listsってとこ。最近は日本語に変換して表示されてるはず。 google cloudでもIPの塊にタグつけてグループをセキュリティ設定に指定できるんやけど、なんとazureにはグループが定義できへんかった!(2025年7月現在) エントリってところに入れとくと、具体的な定義ができる。 インターネットゲートウェイとNATゲートウェイはアタッチしとく インターネットゲートウェイはVPCにアタッチしとく。 NATゲートウェイはElasticIPつける。 dhcpオプションセットを作る これがあると、ec2に対して一律でdns設定を配れる。クラスタ入れてるサーバだけ違うDNSにしたい、とかやったらOSのDNS設定したらええ。 DNSで思い出したけど、サブネットの4オクテット目が2はDNSやったはず。 vpcの中のサブネットってIPアドレス予約があるから、ec2が使えへんIPアドレスがある。ec2のIPアドレスは4オクテット目を10から使うことにしてる。 サブネット CIDR ブロック - Amazon Virtual Private Cloud docs.aws.amazon.com IPアドレス 備考 10.0.0.0 ネットワークアドレス 10.0.0.1 AWS VPCルーター用 10.0.0.2 AWS DNSサーバー用 10.0.0.3 AWSが将来利用のため予約 10.0.0.255 ブロードキャストアドレス 「将来利用のため予約」って何やろな。 セキュリティグループを作る sshの許可 できるだけ規則的に名前つけとくのと、説明を入れといたほうが後で楽になるはず。 入ってくる通信を許可するインバウンドルールにsshをタイプに選ぶと、自動的にtcpの22って入ってくれる。 あとサブネット間の通信は必要なポートに絞るほうがええけど、検証環境やったら「すべてのトラフィック」を許可しとく。 rdpとかoracleとかpostgresqlとか書いたらええけど、あんまりいっぱい許可するとパケットいっぱい通って重くなるから重くなるしやらん。 セキュリティグループはいくつもルールが書ける。もちろん 限界 はある。 1つのルールにいくつものタイプを書くこともあるし、sshとかrdpとかタイプごとにルールを作ってもええ。 ...

 ⭐️

AWSで多重要素認証(MFA)

セキュリティ的にないよりはあったほうがええ。 どんな感じのことができるか 解説されている企業さんがいくつもある。企業さんありがとう。 多要素認証とは?パスワードだけでは守りきれないクラウドのセキュリティ|ブログ|NRIセキュア www.nri-secure.co.jp 【初心者向け】多要素認証とは? 二段階認証との違いや具体例を紹介|ICT Digital Column 【公式】NTTPCコミュニケーションズ www.nttpc.co.jp 多重要素認証とか2段階認証は、「これだけで安全!」っていうわけやない。 技術が進んだら、また新しいパラダイムが出てくるし。 スマホのアプリ - MSauthenticator 6桁の数字を数秒間表示して動的に認証情報を変えてくれるのを入力するんやけど、スマホのアプリにMS-authenticatorってのがあってこれを使う。 googleのauthenticator使ってもできるんやけどな。 awsでセキュリティ認証情報を追加設定 awsのコンソール右上のアカウント表示をクリックすると「セキュリティ認証情報」ってのがあるから選ぶ。 次の画面で「MFAデバイスの割り当て」を選ぶ。 スマホで表示させるデバイス名を入力しとく。 QRコード表示させる。 アカウントの種類は「その他」をいっつも選んでるけど、「職場のアカウント」ってしたらバックアップ取ってくれるんかな。 QRコードを読ませる。 左がスマホ画面で、数字6桁のワンタイムパスワードが表示されてるから1つメモして、さらに2つめが表示されるまで待ってそれもメモする。 2つメモした6桁の数字を、右側のawsコンソール画面に入力する。 1つめと2つめの両方を入れたら割り当て完了のメッセージが表示される。 入力ミスってうまくいかんくても、もう1回2つの数字メモをとりなおしたらええ。 実際にawsコンソールできいてくる 次回のawsコンソールにログインするとき、ユーザとパスワード入力した後の画面で「追加の検証が必要」って表示されてMFAコードの入力求められるから、スマホに表示されてる6桁の数字を入力するとログインできる。 この6桁の数字はawsコンソールごとに登録して使うから、利用環境ごとに登録が必要で何個か登録して使ってる。 MS-authenticatorは、2025年8月時点でエクスポートがうまいことできんかった。 スマホ変更するときめっちゃ面倒になりそうやな・・・。

 ⭐️

AWSでシステムディスク拡張

OSをテキトーに選んでEC2インスタンスを作ってしまうとディスクサイズが小さすぎて後で苦しむことも。 他に、dockerは/var/あたりを使うのでイメージとコンテナの保管領域が足りなくなったり。 そんなときのためのディスク拡張。 パーティションの確認 拡張したいパーティションを目視で確認しておく(ここではルートパーティションの/dev/xvda1)。 EBS IDの確認 インスタンスを停止させてコンソールに戻り、拡張したいデバイス(ここでは/dev/xvda)の青い文字をクリックしてEBS IDを確認する。 スナップショットの作成1 左ペインの「ボリューム」をクリックし、確認しておいたEBS IDのデバイスをクリックして「スナップショットの作成」を選ぶ。 スナップショットの作成2 名前を入れて作成し、左ペインの「スナップショット」を選んで、ステータスがPendingからCompleteになるまで待つ。 スナップショットの作成3 8GBで作ったものを利用率約29%(2.2GB)のものでもCompleteになるまで5分以上かかった。 スナップショットからボリューム作成 スナップショットがCompleteしたら「ボリューム作成」を選択する。 ボリュームサイズの入力 今回は8GBを100GBにしたいので100を入力。 旧ボリュームのでアタッチと新ボリュームのアタッチ 左ペインの「ボリューム」から、古いボリュームをデタッチし、新しいボリュームをアタッチする。 アタッチ先選択 アタッチ先は候補が出てくるので選択する。 デバイス名は元の名前と同じものにしておかないとインスタンスの起動エラーになってしまう。 新ボリューム使ってEC2インスタンスの起動 左ペインの「インスタンス」から対象のEC2を選んで、スナップショットから作成したボリュームがルートデバイスに組み込まれていることを確認して起動。 EC2インスタンスの起動確認 /dev/xvdaが100GB(df結果では99GB)になり増えていることと、このルートデバイスからOSが起動できサービスも動いていることを確認。

AWSでDBサーバ作ってNavicatでインポート

今はmariadb/a5sql使ってるけど当時はmysql/Navicat。 ローカルLinuxにあるDBテーブルをNavicat使ってインポート実施。 yumできることを確認 # yum update タイムゾーンを設定(できるだけ最初にやるべき) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@ip-172-31-21-195 log]# date Sat Nov 12 21:04:51 UTC 2016 [root@ip-172-31-21-195 log]# strings /etc/localtime TZif2 TZif2 UTC0 [root@ip-172-31-21-195 log]# cp -p /etc/localtime /etc/localtime.org [root@ip-172-31-21-195 log]# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime [root@ip-172-31-21-195 log]# vi /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=false :wq mysqlをインストール # yum -y install mysql-server /etc/my.cnfができていることを確認 ...