概要
サービスアカウントは、作成しただけでは何も操作できません。連携に必要な権限を、IAM ポリシーのバインディングとして割り当てます。仕組みはグループへのロール割り当てと共通です。
サービスアカウントの権限は、人による判断を介さず、保有する権限をプログラムからいつでも行使できる状態になります。最小権限の原則を人のとき以上に厳格に適用します。
ロールを割り当てる
アクセス範囲を最小化する2つの方法
組織全体への割り当てを避け、対象を絞る方法が2つあります。
| 方法 | 内容 | 例 |
|---|---|---|
| リソース単位の IAM ポリシー | 特定のリソースの詳細画面でバインディングを追加 | 特定のワークフロートピックにのみ発行権限を付与 |
| アクセス境界設定(エンタープライズプラン) | サービスアカウントにアクセス境界プロファイルを適用し、見える範囲そのものを制限 | 連携用サービスアカウントには特定の資産グループとトピックだけを見せる |
境界による API アクセスの厳密化
アクセス境界プロファイルはサービスアカウントにも適用できます。ロール(何ができるか)に加えて境界(何が見えるか)を定義することで、万一トークンが漏えいした場合の影響範囲もプロファイルの範囲内に限定されます。外部委託先が利用する連携など、影響範囲を明確に区切りたい場面で特に有効です。
監査ログでの確認
割り当て後は、監査ログでサービスアカウントの操作が想定どおりの範囲に収まっているかを確認してください。想定外の操作の失敗(アクセス拒否)が多い場合は権限不足、想定外の成功がある場合は権限過剰の兆候です。

