IAM Conditionsで期間限定のアクセス権限を付与する

Google Cloud
スポンサーリンク

Google Cloudのアクセス権限を、Aさんに与えるんだけど

3月いっぱいまでに限定したいんだよな。

権限を消し忘れるかもしれないから、

期限が過ぎたら自動で無効化されるようにしたいなぁ。

組織の人事異動や、一時的な監査などのために、Google Cloudのアクセス権限を一定期間に限定したいケースがあると思います。これは「IAM Conditions」を使うことで実現できます。名前から難しそうな印象を受けるかもしれませんが、有効期限の指定だけであれば、画面上の操作だけで簡単に設定できます。本記事ではこの設定手順を解説していきます。

IAM Conditionsとは

IAM Conditions(IAM条件)を使うと、指定された条件を満たす場合にのみ、プリンシパル(ユーザーやグループなど)にアクセス権を設定できます。具体例を見ていきましょう。

上の画面はIAM Conditionsを設定した例です。赤枠の部分に「2024/03/31まで」という名前の条件が指定されています。この場合、2024/03/31までの間だけ、「user1@example.com」ユーザーに対して「ストレージ管理者」の権限が与えられます

この場合のメリットとして、有効期限が過ぎた後に自動的かつ確実にアクセス権限を無効化することができます。不要なアクセス権限の削除漏れを防ぐことで、セキュリティ上のリスク軽減に繋がるでしょう。

他にもIAM Coditionsを使うことで、アクセス可能な時間帯や、アクセス可能なリソースを限定することなどが可能です。詳細は、以下の公式ページを参照して下さい。

基本ロールには条件を指定できない

例外として、「オーナー」「編集者」「閲覧者」といった基本ロールに対して条件を指定することはできません

また、「すべてのユーザー」(allUsers)、「すべての認証済みユーザー」(allAuthenticatedUsers)に対しても同様です。

有効期限の設定方法

以下に、IAM Conditionsで有効期限を設定する方法を紹介します。

ここでは、現在アクセス権限を持たないユーザー「user1@example.com」に対して、2024年3月31日までの期間限定(※1)で、「ストレージ管理者」の権限を付与してみます。これをCloud Console(GUI)上で設定します。

※1…日本時刻の2024年4月1日 0時0分0秒以降、自動的に権限が無効化する。
  (現在は2024年3月以前の前提)

設定手順

IAM Conditionsの設定手順例
  • step1
    IAM画面で「アクセス権を付与」

    Cloud Consoleから、[IAMと管理]>[IAM]の画面を開き、「アクセス権を付与」をクリックします。

  • step2
    プリンシパル・ロールを指定

    プリンシパル(対象ユーザーやグループ)とロール(付与する権限)を指定したのち、「IAMの条件を追加」をクリックします。

    基本ロールには条件を指定できない

    前述したように、②で「オーナー」や「編集者」「閲覧者」などの基本ロールを選んだ場合、IAMの条件を指定するとエラーになります。

  • step3
    条件を指定

    ①タイトルには条件名を指定します。IAMの一覧画面に表示されるので、どんな条件なのか判別しやすい名前が良いでしょう。②条件タイプには「アクセスの有効期限」、③演算子には「次の時間まで」を指定します。④時刻には、有効期限が切れる日時「2024/04/01 0:00」を日本時刻(JST)で指定します(補足参照)。

    補足:「次の時間まで」とは

    「次の時間まで」とありますが、正確には「次の時間より前まで」です。上の例では「2024/04/01 0:00:00」に期限切れになるので、「2023/03/31 23:59:59まで有効」という意味になります。

  • step4
    設定の確認

    「保存」ボタンで確定すると、IAMの一覧画面に戻ります。「条件」列に指定した条件名が表示されていることを確認します。

ロールはグループへの付与を推奨

この例では分かりやすいように、ユーザーアカウントにロールを付与しています。しかし、Googleのベストプラクティスでは、可能な限りグループにロールを付与するよう記載があります。詳しくは下記の引用およびリンクを参照のうえ、実運用においてはご留意下さい。

可能であれば、個々のユーザーではなく Google グループにロールを付与してください。許可ポリシーを更新するより、Google グループのメンバーを管理するほうが簡単です。許可ポリシーで使用している Google グループのオーナー権限を制御してください。

Google Cloud ガイド「リソース階層を使用したアクセス制御」より

設定後の動作

前項の設定後まもなく、ユーザー「user1@example.com」は、「ストレージ管理者」の権限が有効になります。

そして2024年4月1日 0時0分0秒以降、権限が自動的に無効化されます。この例ではCloud Storageのバケット管理画面を開くと、以下のように権限がない旨の表示になります。

「開始日時」の設定方法

前項では有効期間の終了日時を設定しましたが、例えば「2024年4月1日から有効」のような開始日時を指定するにはどうすれば良いでしょうか。

現時点(2023年5月)では、画面上の条件ビルダーでは開始日時を指定できません。下のように「期間」の指定はできますが、これは「現在日時から7日間だけ有効」や「1時間だけ有効」といった条件になるだけです。

そのため、開始日時を指定するには、条件ビルダーではなく条件エディタで条件式を入力する必要があります。以下にその手順を紹介します。

いずれは条件ビルダーで指定できるかも

2023年5月時点では不可能ですが、今後もしかすると、条件ビルダーの画面上で開始日時を指定できるようになるかもしれません。画面を確認してみて、もし開始日時が指定できる場合は、条件ビルダーで操作したほうが簡単でしょう。

開始日時のみ指定する場合

例えば、2024年4月1日以降にアクセス権限が有効になるように設定してみます(現在は2024年3月以前の前提)。

前項の操作手順のstep3の画面で、「条件エディタ」をクリックします。そして下のように条件式を入力します。

request.time >= timestamp("2024-03-31T15:00:00.000Z")

日時形式は、上記のフォーマットで指定する必要があります。世界協定時(UTC)にするため、日本時刻(JST)からマイナス9時間の時刻を指定しています。そのため前日3/31の15時としています。時刻の変換は手動で計算しても良いですが、下記(参考)日時フォーマットの変換」の方法で簡単に変換できます

この条件の場合、2024年4月1日 0時0分0秒(日本時間)以降に初めてアクセス権限が有効化されます。終了日時の指定は無いため、その後永続的に有効となります。

開始日時と終了日時を指定する場合

次の例では、2024年4月1日から1年間だけアクセス権限を有効にするように設定してみます(現在は2024年3月以前の前提)。

前項の操作手順のstep3の画面で、「条件エディタ」をクリックします。そして下のように条件式を入力します。

request.time >= timestamp("2024-03-31T15:00:00.000Z") &&
request.time < timestamp("2025-03-31T15:00:00.000Z")

前項と同様に、日時形式は上記のフォーマットで指定する必要があります。世界協定時(UTC)にするため、日本時刻(JST)からマイナス9時間の時刻を指定しています。そのため前日3/31の15時としています。時刻の変換は手動で計算しても良いですが、下記(参考)日時フォーマットの変換」の方法で簡単に変換できます

この条件の場合、2024年4月1日 0時0分0秒(日本時間)以降に初めてアクセス権限が有効化され、1年間継続します。そして2025年4年1日 0時0分0秒以降、権限が自動的に無効化されます。

(参考)日時フォーマットの変換

条件エディタで指定する日時のフォーマットは、以下の操作をすると簡単に変換することができます。

日時フォーマットの変換方法

まず、IAMの「条件を追加」の画面で①「条件ビルダー」を選択し、条件タイプを「アクセスの有効期限」として②日本時間を指定します。

その後、③「条件エディタ」を選択します。すると、④の箇所に変換された日時形式が表示されていますので、これをコピーして使います。

参考URL

IAM Conditions の概要  |  IAM のドキュメント  |  Google Cloud

おわりに

今回の記事は以上です。

当サイトでは、ITインフラ関連の知識やノウハウをメインに紹介しています。下の関連記事にも役立つ情報があるかもしれませんので、ぜひご覧下さい。

また、知識やノウハウを効率的に学ぶ方法として、Udemy の「ながらセミナーもおすすめです。三日坊主にならず、普段の生活の中でスキルアップする方法です。これについては下の記事で紹介していますので、良ければご覧下さい。

もとだて
もとだて

最後まで読んでいただき、ありがとうございました。

フィードバック

コメント

タイトルとURLをコピーしました