問題タブ [aws-session-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python で AWS Session Manager websocket 出力をデコードできません
よろしくお願いします!
ユースケース
私は AWS で何かを PoC しようとしています。ユースケースは、すべてのインスタンスが AWS Session Manager を介して到達可能であることをすべてのインフラストラクチャで確認できる必要があるということです。
そのために、Python 3.7 で Lambda を使用します。現在、ローカルで PoC を作成しています。Websocket を開き、トークン ペイロードを送信して、シェルを含む出力を取得できました。
問題は、何かがブロックされるたびに、多くのテスト済み文字エンコードで Python デコード関数がデコードできない文字がバイト出力に含まれることです。
出力
ペイロードを送信した後の出力は次のとおりです。
印刷(イベント)
b'\x00\x00\x00toutput_stream_data \x00\x00\x00\x01\x00\x00\x01m\x1a\x1b\x9b\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x01\xb1\x0b?\x19\x99A\xfc\xae%\xb2b\xab\xfd\x02A\xd7C\xcd\xd8}L\xa8\xb2J\xad\x12 \xe3\x94\n\xed\xb81\xfa\xb6\x11\x18\xc2\xecR\xf66&4\x18\xf6\xbdd\x00\x00\x00\x01\x00\x00\x00\x10\x1b[? 1034hsh-4.2$ '
私がすでに試したこと
私はstackoverflowについて多くのことを調査し、ascii、cp1252、cp1251、cp1250、iso8859-1、utf-16、utf-8、utf_16_beでデコードしようとしましたが、毎回何もデコードしないか、エラーにつながります.キャラは不明。
私もすでに chardet.detect を使用しようとしましたが、返されたエンコーディングが機能しておらず、確率結果も非常に低くなっています。また、 \x00 を削除しようとしましたが、その時点では削除できません。
シェル出力には色付け文字や文字化けのように見えるものが含まれることがあることはすでに知っていますが、ここでは colorama を渡そうとし、ANSI 文字を正規表現と一致させようとしましたが、このバイト応答を正常にデコードするものはありませんでした。
コード
これが私の PoC のコードです。お気軽に試してみてください。ターゲット インスタンス ID を変更するだけです (インスタンスで最新の amazon-ssm-agent が実行されている必要があります)。
期待される出力
最終的な解決策では、websocket を介してcurl http://169.254.169.254/latest/meta-data/instance-idのような処理を実行し、コマンド出力のインスタンス ID をターゲットと比較できることを期待しています。 、インスタンスが到達可能であることを検証します。しかし、それを達成する前に、websocket の出力をデコードできる必要があります。
これについて何か助けていただきありがとうございます。
あなたの一日の残りをお楽しみください!
amazon-web-services - ListAssociation の AWS Session Manager 例外
AWS でセッション マネージャーのヘルス チェックを実行中に、以下のエラーが発生しました。
これは、インスタンスの IAM ポリシーに付与された権限が不十分であることが原因であると考えられます。しかし、このエラーを解決するには、どの追加のアクセス権を付与する必要がありますか?
以下は、AWS ドキュメントからコピーされた現在のインライン ポリシーです。
}
amazon-web-services - AWS セッションマネージャーでコマンドを制限したい
セッション マネージャー モードで 1 つのインスタンスからドキュメント db の mongo シェルにアクセスしようとしていますが、セッション マネージャーで作業しているときに、コマンド mongo を除く他のすべてのコマンドを自分のインスタンスで制限したいと考えています。
セッションドキュメントが目標を達成するのに役立つはずだと思うawsドキュメントをいくつか調べましたが、コマンドmongoのみを有効にするための構文が見つかりませんでした。