LoginSignup
1
0

AWS SSM PortforwardコマンドとIAMポリシー

Last updated at Posted at 2023-09-20

はじめに

AWSのVPC内にあるWindowsインスタンスにローカルPCからSSM PortforwardをしようとしたらコマンドとIAMポリシーにつまづいたので記録として残しておきます。

環境

接続先はVPC内Windowsサーバ(3389のRDPポートにつなぎたい)
接続元OSはWindows

Windowsサーバには適切なIAMロール(AmazonSSMManagedInstanceCore)とNetwork設定、SSMAgentがインストールされている前提です。

AWS CLIのコマンド

ドキュメント等を参考にコマンドを用意したが以下はNG
(コマンドプロンプトかpowershellからはNG)

aws ssm start-session --target i-xxxxxxxxx --document-name AWS-StartPortForwardingSession --parameters '{"portNumber":["3389"],"localPortNumber":["50001"]}' --region ap-northeast-1

コマンドプロンプトかpowershellでは以下がOKのコマンド。
--parametersの括弧内のダブルクォーテーションをエスケープする必要がありました。

aws ssm start-session --target i-xxxxxxxxx --document-name AWS-StartPortForwardingSession --parameters="{\"portNumber\":[\"3389\"],\"localPortNumber\":[\"50001\"]}" --region ap-northeast-1

上記コマンドが通った後、ローカルPCからRDPクライアントでlocalhost:50001に接続することになります。

ローカルPCへ入れるクレデンシャルのIAMポリシー

AWS CLIを利用してSSMポートフォワードするには、
ローカルPCへはIAMユーザを作成しクレデンシャルを登録する必要があります。

ポートフォワード先を制限したいときのIAMポリシー例を以下に残しておきます。

※arn:aws:ssm:ap-northeast-1::document/AWS-StartPortForwardingSessionにはAWSアカウント番号を入れないのがポイントのようです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:ap-northeast-1:99999999:instance/i-XXXXXXXXXXXX",
                "arn:aws:ssm:ap-northeast-1::document/AWS-StartPortForwardingSession"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:username}-*"
            ]
        }
    ]
}

99999999は自身のAWSアカウント番号に置き換えて下さい。
i-XXXXXXXXXXXXは接続したい(それだけに絞りたい)インスタンスIDに置き換えてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0