「AWS IAM」の「ABAC」で、ポリシーを変更せずにユーザー/リソース数の多いプロジェクトに対応するAWSチートシート

「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、「AWS IAM」の「属性ベースアクセスコントロール」(ABAC)について解説する。

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

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

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

 AWSを利用する多くの方にとってなじみのある「AWS Identity and Access Management」(IAM)の一歩踏み込んだポリシー管理の手法として、記事『AWS活用のガードレール「IAM」の「Permissions Boundary」でアクセス境界を設定するには』ではPermissions Boundaryを利用したアクセス許可の境界を設定する方法を紹介しました。

 今回の記事では「IAMエンティティ」(IAMユーザーまたはIAMロール)やAWSリソースにタグを付与することで行う属性ベースのアクセスコントロール「ABAC」(Attribute Based Access Control)について解説します。

「ABAC」とは?

 ABACとは「属性ベースのアクセスコントロール」という名前の通り、ユーザーやリソースの属性に応じたアクセス制御によって、実行できる機能やアクセスできるサービスを限定する手法です。

 AWSの場合、この「属性」としてIAMエンティティやAWSリソースの「タグ」を用いることができます。

 また、ABACと対比されるアクセス制御の手法に「役割ベースのアクセスコントロール」(RBAC)があります。RBACも名前の通り、管理者や開発者といった役割ごとに異なるアクセス権限を付与する方法です。

ABACを利用するメリット

 ロールベースでのアクセス制御は比較的作業が簡単ですが、兼務などの場合にはユーザーやロールがどんどん増えていったり、アクセス許可を最小にするには新しいリソースを作成するたびにポリシーの修正が必要(動的に権限を付与することはできない)になったりといったデメリットが存在します。

 タグを利用したABACによるアクセス制御のメリットは、新しいリソースの作成時にポリシーを修正しない最小アクセスの実現(動的な権限付与ができる)ことです。また、職務機能ごとに異なるポリシーを作成する必要がないので、作成しなければならないポリシーの数も減らすことができます。

タグを利用したABACの設定手順

 ABACを利用する方法を確認していきましょう。今回は下記の手順で作業します。

  1. テスト用の「Amazon EC2」インスタンスを2台起動
  2. テスト用のIAMユーザーを作成
  3. ABACの条件を満たす場合のみEC2インスタンスを操作できることを確認

1.テスト用のEC2インスタンスを2台起動

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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