IAMロールの権限設定漏れ、デプロイ前に気づきたい!
DRANK
AWS上で動かすアプリケーションを開発していると、どうしてもアプリケーションが利用するAWSのAPIを利用する権限を付与し忘れ、動かしてみたら権限エラーになることがある。単純に付与し忘れていることもあるし、権限が必要と認識しておらず思わぬエラーで気づくこともある。常々どうにかならないだろうかと思っていたが、GitHub Actions Workflowでチェックする仕組み iam-policy-checker を作ったので紹介する。 iam-policy-checkerはTypeScriptで実装した内製ツールで、ECSタスク定義の設定ファイルからエントリーポイントを検出し、コードを静的解析して呼び出されるAWSのAPIを取得し、AWS上のIAMロールでそのAPIがアクションとして許可されているかをチェックするもの。チェックできていない場合は不足アクションとして出力し、PullRequestのチェックを落とすようになっている。これにより、デプロイ前に少なくともアクションを許可できているかどうかを確認できるというわけである。また、実際には呼び出していない権限のチェックも可能にして過剰分・不足分の両方検出できるようにした。 特徴 主要な特徴を3つ紹介する。 可能な限り呼び出されるコードをたどることで…