コンソールからSSM RunCommandを実行する際に「アクセス拒否」になる場合があります。実はこれ、今コンソールにログインしているユーザのIAM権限が原因であることが大半です。すべてのリソースにAdmin権限がある場合でも、IAMユーザに割当たっているIAMポリシーのCondition句でIPアドレス制限を行っている場合も発生します。本件理由がわからずにハマったので内容を記事にします。
原因 コンソールログインしているIAMユーザの設定
冒頭で述べた通り、現在ログインしているユーザにSSM(SystemsManager)の権限が不足している、または何らかのIPアドレス制限がかかっていることが原因です。IPアドレス制限がかかっている場合、そのIPの範囲からコンソールにアクセスしていたとしてもアクセス拒否となります。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"192.0.2.0/24",
"203.0.113.0/24"
]
}
}
}
}
おそらく、コンソールにログインしているIAMユーザの権限でSSMがRunCommandを発行するのですが、そのアクセス元IPが範囲外にあることが原因だと思います。文章では説明しづらいので以下図にしました。
対処法 2パターン
対処法1:スイッチロールを活用する
SSM RunCommandの実行権限を持ったIAMロールを作成し、現在コンソールにログインしているIAMユーザからスイッチロールを行います。
IAMロールを作成してある前提での手順です。コンソール右上のIAMユーザ名からロールの切り替えを選択します。
アカウントとロール名を入力してロールの切り替えを行います。
切り替えができると切り替えたロール名が右上に表示されます。
対処法2:IAMユーザのポリシーからIPアドレス制限を削除する
IAMユーザのポリシーからIPアドレス制限を削除すると手っ取り早く対処ができます。しかし、セキュリティの観点から望ましくない場合があるかと思うので状況に合わせて判断してください。
PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!
SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ
システムエンジニア
AWSを中心としたクラウド案件に携わっています。
IoTシステムのバックエンド開発、Datadogを用いた監視開発など経験があります。
IT資格マニアでいろいろ取得しています。
AWS認定:SAP, DOP, SAA, DVA, SOA, CLF
Azure認定:AZ-104, AZ-300
ITIL Foundation
Oracle Master Bronze (DBA)
Oracle Master Silver (SQL)
Oracle Java Silver SE
■略歴
理系の大学院を卒業
IT企業に就職
AWSのシステム導入のプロジェクトを担当