概要

サービスアカウントは、作成しただけでは何も操作できません。連携に必要な権限を、IAM ポリシーのバインディングとして割り当てます。仕組みはグループへのロール割り当てと共通です。

サービスアカウントの権限は、人による判断を介さず、保有する権限をプログラムからいつでも行使できる状態になります。最小権限の原則を人のとき以上に厳格に適用します。

ロールを割り当てる

サービスアカウントのIAMポリシーを開く

サービスアカウント から対象アカウントの詳細画面を開き、「IAMポリシー」 タブを選択します。

サービスアカウントのIAMポリシータブのスクリーンショット
サービスアカウント詳細のIAMポリシー — バインディング一覧
バインディングを追加する

「バインディングを追加」 から、連携に必要な最小限のロールを選択して保存します。書き込みが不要な連携(データ参照のみ)には、閲覧系のロールを選択してください。

サービスアカウントのIAMポリシータブのスクリーンショット
「バインディングを追加」からロールを選択

アクセス範囲を最小化する2つの方法

組織全体への割り当てを避け、対象を絞る方法が2つあります。

方法 内容
リソース単位の IAM ポリシー 特定のリソースの詳細画面でバインディングを追加 特定のワークフロートピックにのみ発行権限を付与
アクセス境界設定(エンタープライズプラン) サービスアカウントにアクセス境界プロファイルを適用し、見える範囲そのものを制限 連携用サービスアカウントには特定の資産グループとトピックだけを見せる
境界による API アクセスの厳密化

アクセス境界プロファイルはサービスアカウントにも適用できます。ロール(何ができるか)に加えて境界(何が見えるか)を定義することで、万一トークンが漏えいした場合の影響範囲もプロファイルの範囲内に限定されます。外部委託先が利用する連携など、影響範囲を明確に区切りたい場面で特に有効です。

監査ログでの確認

割り当て後は、監査ログでサービスアカウントの操作が想定どおりの範囲に収まっているかを確認してください。想定外の操作の失敗(アクセス拒否)が多い場合は権限不足、想定外の成功がある場合は権限過剰の兆候です。