こんにちは、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を利用する上で知っておくべきことが記されていると思います。
より実践的な知識やノウハウを身に着けたい方、初学者から一皮むけたい方におすすめです。