AWS活用のガードレール「IAM」の「Permissions Boundary」でアクセス境界を設定するにはAWSチートシート

「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、「AWS IAM」の「Permissions Boundary」を利用したアクセス境界の設定について。

» 2021年03月30日 05時00分 公開
[天野盛介東京ITスクール]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。

 利用者によるAWSリソースに対するアクセスと認証を管理する「AWS Identity and Access Management」(IAM)は、AWSを使うなら最初に学習、利用するサービスの一つといっていいほど基本的なサービスです。

 多くの人にとっては「IAMユーザー」「IAMグループ」「IAMロール」「IAMポリシー」といった基本的な機能の使い方を押さえておけば事足りてしまいますが、IAMをより一歩踏み込んで利用する機能を何回かに分けて紹介します。

 今回の記事では、「Permissions Boundary」を利用したアクセス許可の境界を設定する方法を見ていきましょう。

Permissions Boundaryは、どんなときに利用するといいのか?

 Permissions Boundaryは、IAMユーザーやIAMロールを発行する際に、そのIAMユーザーやIAMロールが利用できる操作の範囲を制限する機能です。

 この説明だけではイメージを持ちづらいと思いますので、具体的な利用シーンを想像してみましょう。

 例えば、開発者が「AWS Lambda」を実行するIAMロールを必要としている場合を考えてみてください。あなたがAWS環境の管理者だったとして、開発者に自分で必要なIAMロールを自由に発行できる権限を付与するでしょうか?

 IAMロールの作成を許可してしまうと、開発者に付与している権限を超えたIAMロールを作成してそれを利用できるようになってしまいます。IAMロールにアタッチ可能なポリシーを詳細に設定することも可能ですが、そのポリシーを管理、メンテナンスするのは簡単ではありません。

 かといって、新しいIAMロールが必要になるたびに発行を依頼したら、管理者としても毎回対応コストがかかってしまう上に、開発者の開発スピードも落ちてしまいます。このような問題を解決する機能がPermissions Boundaryです。

 AWSには、道の外に飛び出してしまわないための“ガードレール”を設置することで開発者の自由を損なわずに統制するといった考え方がありますが、Permissions Boundaryを利用することで、このガードレールを設置できます。

Permissions Boundaryの仕組み

 IAMユーザーやIAMロール(IAMエンティティ)に付与する通常のIAMポリシー(Permissions Policy)に加えてPermissions Boundaryを設定することで、対象のIAMエンティティが利用可能な範囲を制限することができます。

 Permissions Boundaryが付与されたIAMエンティティができるのは、図1のように「IAMポリシー(Permissions Policy)で権限が付与されている」かつ「Permission Boundaryで利用可能な範囲として定義されている権限」になります。

図1 Permissions Boundaryを利用した権限の制御

利用手順

 それでは、Permissions Boundaryを利用する手順を見てみましょう。今回は以下の手順で作業します。

  1. IAMユーザーを発行
  2. Permissions Boundaryポリシーを適用
  3. IAMユーザーで権限が制限されていることを確認

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。