AWS クラウド

【SSM】Run Command でアクセス拒否になっとたときの対処法

2022年1月13日

こんにちは、yassanです。
今回は、Systems Manager の機能である Run Command でアクセス拒否になったときの対処法を紹介します。

Run Command を使えば、bastionを用意してSSH~なんてやってた過程をすっ飛ばして、
マネージメントコンソールやCLIから、リソースに対してコマンドを送ることができます。

便利である反面、IAMロールやセキュリティグループの設定は少しややこしいです。
その最たる例として、今回のようなアクセス拒否があります。

「EC2インスタンスに付与しているIAMロールは間違ってない!」
「セキュリティグループもSSMからの通信を許可している!」

このような場合でも、今回のような事象は発生します。
(僕もかなり苦しめられました。。)

というわけで、
Run Command でアクセス拒否になったときの対処法を紹介します。

実行するIAMユーザーにポリシーを付与する

結論から言うと、
Run Command を実行するIAMユーザーに、"Sendcommand"のポリシーを付与する必要があります。

Sendcommand は AmazonSSMServiceRolePolicy で確認することができます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CancelCommand",
                "ssm:GetCommandInvocation",
                "ssm:ListCommandInvocations",
                "ssm:ListCommands",
                "ssm:SendCommand",
                "ssm:GetAutomationExecution",
                "ssm:GetParameters",
                "ssm:StartAutomationExecution",
                "ssm:ListTagsForResource",
                "ssm:GetCalendarState"
            ],
            "Resource": [
                "*"
            ]
        },
  【中略】
    ]
}

厳密には、ssm:Sendcommand ですね。

アクセス拒否って表示されているから、EC2インスタンス側の問題かと思ってしまうのですが、
実行するIAMユーザー側の問題でした。

ちなみに、望ましい運用としては、
sendcommandのアクセス先を制御する方がよさそうです。

また、ここではIAMユーザーに付与するロールを表現していますが、
Run Command 実行用の Lambda に関しても考え方としては同じです。
Lambda に付与する IAMロールには、Sendcommandを付与してあげましょう。

というわけで、短いですがRun Command でアクセス拒否になったときの対処法でした。
アクセス拒否って書かれると、どうしても受信側の問題かなって思ってしまいますよね笑

以上、Run Command でアクセス拒否になっとたときの対処法でした。

AWS学習におすすめの書籍

AWSについて、しっかりと基礎から学びたい、実践的なスキルを身につけたいと考えている方向けに、おすすめの書籍を紹介します。
これらの書籍は、実際にAWSエンジニアとして働く僕が参考にしている書籍です。

AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ

AWSを使いこなすための前提となるITインフラの知識が足りない初学者にとって、どこからどのように学べばよいのかがわかりづらくなっています。そこで本書では、AWS学習サイト運営YouTuberである監修者自身が実サービスの導入で習得しながら体系化した「学習ロードマップ」に沿って、AWSのサービスとIT技術をやさしく解説していきます。

著者が作成した学習ロードマップに沿って、AWSやインフラストラクチャを体系的に学ぶことができます。
付属のロードマップの完成度が高く、学習に迷ったときや復習にも使えます。
これからAWSエンジニアを目指す方や、インフラストラクチャを基礎から学びたい方におすすめです。

Amazon Web Services 業務システム設計・移行ガイド

オンプレミス上に構築された業務システムをAWS上に移行するための「サービスの選定」「ネットワーク設計・構築」「サーバとデータの移し方」「運用・監視体制の構築」など。これまで多くの企業にAWSを導入し、コンサルティングフェーズから実際の設計・開発、運用フェーズまでの全行程に携わってきた著者陣のノウハウを凝縮して、一般的な企業にAWSを導入する際のベストプラクティスをお届けします。

実務を想定した様々なユースケースとそれに対するベストプラクティスを、設計構築から運用まで幅広くカバーして紹介しています。
タイトルからは移行に焦点を当てたように見えますが、僕としては移行に限らずエンタープライズとしてAWSを利用する上で知っておくべきことが記されていると思います。
より実践的な知識やノウハウを身に着けたい方、初学者から一皮むけたい方におすすめです。

-AWS, クラウド
-, ,