0.問題
気ままに更新ボルベルトでーす。今日はEC2にSSMを使って接続をしようとしていたらエラーが出たのでメモしていきます。
やろうとしていたことは以下です。
- IGを作成したVPCにEC2を立ち上げる。なお、VPCはDNSホスト名とDNS解決を有効とする。
- EC2にSSM接続を許可したポリシーをアタッチする(AmazonSSMManagedInstanceCoreというポリシー)
- aws cliから下記コマンドでssm接続を試みる
aws ssm start-session --target "インスタンスID"
上記手順でSSM接続しようとしたところ下記のエラーが発生
SSL validation failed for https://ssm.ap-northeast-1.amazonaws.com/
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
1.解決策(一時しのぎ)
結論、--no-verify
のオプションを追加すると接続ができるようになりました。
Warninngは出るんですけどね。(参考サイト)
2.エラーの原因
AWSの公式サイトにトラブルシューティングがありました。下記に記載します。
これは、企業が認定機関 (CA) に設定されており、プロキシの証明書が自己署名されているなどの要因により、AWS CLI がプロキシの証明書を信頼していないことが原因です。これにより、AWS CLI はローカル CA レジストリにある企業の CA ルート証明書を検索できません。
この問題を解決するには、ca_bundle 設定ファイルの設定、--ca-bundle コマンドラインオプション、または AWS_CA_Bundle 環境変数を使用して、AWS CLI に企業ファイル .pem の場所を指示します。
企業ファイル.pem??確かに社内環境からssm接続を試みていましたが、、、
試しに自宅の私用pcから同じEC2にssm接続を試みると接続ができました。
企業ファイル.pemとは聞いたことがないですが、情シスの人とかに聞けば場所を教えてもらえるのかな?
3.今後
引き続きAWSの勉強を継続していきまーす。なんだかつまるところは大体社内環境が原因な気がします。
AWSエンジニアの方って大変ですね、、僕もまだまだ見習いですが少しずつ学んだことをメモしていきます。
勉強中の方やAWSお詳しい方はぜひぜひコメント頂けると嬉しいですー
(一人で勉強し続けるのってモチベーション保つのが大変ですね、、)