5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS SessionManager で SSH だけを有効にするIAMポリシー

Last updated at Posted at 2019-10-28

SessionManagerは踏み台不要でサーバに入り、 CLI で操作できる便利なツールですよね。
SSH不要時代がくるか!?AWS Systems Manager セッションマネージャーがリリースされました!

しかしながら、以下のような辛みがありました。

  • パスワードなしでsudoできるssm-userでしかログインできない
  • ブラウザからしか入れないので、 switch role したらセッション切れる

2つめの辛みは、SSH/SCP が使えるようになったことで解消されました!
AWS Systems Manager セッションマネージャーでSSH・SCPできるようになりました

そうした時に、1つめの辛みである ssm-user でのログインを禁止したくなったので、IAM ポリシーを書いてみました。以下に示します。
キモは2つ。

  • ssm:SessionDocumentAccessCheck という Condition
  • SSM-SessionManagerRunShellssm:GetDocumentDeny

公式ドキュメントを見てこの Condition を見つけたので、あとはドキュメントを読んでみてください。
※例示されているポリシーは GetDocument の Statement に ssm:SessionDocumentAccessCheck の Condition が記述されていますが、これは間違いだと思います。マネジメントコンソールのビジュアルエディターで警告出たので。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restrict-access-quickstart.html

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:StartSession",
            "Resource": [
                "arn:aws:ssm:*:*:document/AWS-StartSSHSession",
                "arn:aws:ec2:*:*:instance/*"
            ],
            "Condition": {
                "BoolIfExists": {
                    "ssm:SessionDocumentAccessCheck": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "ssm:GetDocument",
            "Resource": "arn:aws:ssm:*:*:document/SSM-SessionManagerRunShell"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetConnectionStatus",
                "ec2:DescribeInstances",
                "ssm:DescribeSessions",
                "ssm:DescribeInstanceProperties"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ssm:TerminateSession",
            "Resource": "arn:aws:ssm:*:*:session/*"
        }
    ]
}

ちなみに、どうやらセッションマネージャー周りのポリシー変更は、変更後すぐは反映されないようです...
一度ログアウト/ログインを実施すると、すぐ反映されます(経験談)。

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?