ヤマムギ

growing hard days.

*

IAMアクセス許可の境界でIAMロールの権限を制御する

   


IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAMロールを作成する権限を自由に許可することで、そのIAMユーザー自身以上の権限が許可されたIAMロールが作成され、EC2やLambdaに設定されることで、IAMユーザーは自身以上の権限でAWSの操作が行えます。

IAMアクセス許可の境界を使用することで、IAMユーザーは指定された権限範囲を超えるロールの作成ができなくなります。

ユーザーガイドIAM エンティティのアクセス許可の境界を参考に検証をしました。
こちらのユーザーガイドではIAMユーザーの管理を移譲されたIAMユーザーのシナリオですが、IAMロールを作成する開発者に置き換えて検証してみました。

まずIAMユーザーにアタッチするIAMポリシーの例です。

ポリシー名: DelegatedRoleBoundary

LambdaRoleBoundariesというポリシーがアクセス境界に設定されていないと、CreateRoleなどは行えないよう、”iam:PermissionsBoundary”をConditionsで設定しています。

アクセス境界に設定するIAMポリシーの例です。

ポリシー名: LambdaRoleBoundaries

こちらはシンプルにCloudWatch Logs、S3、DynamoDBに対してのフルアクセス権限が設定されています。

対象IAMユーザーです。
DelegatedRoleBoundaryポリシーがアタッチされています。
必要に応じて、EC2やLambdaなど開発に必要なサービス、リソースへのアクションを許可するものとします。

このユーザーがIAMロールを作成しようとして、LambdaRoleBoundariesポリシーをアクセス境界に設定しなかった場合は、以下の権限エラーで作成ができません。

User: arn:aws:iam::123456789012:user/BoundaryRoleTest is not authorized to perform: iam:CreateRole on resource: arn:aws:iam::123456789012:role/TestRole

LambdaRoleBoundariesポリシーをアクセス境界に設定することでIAMロールが作成できます。
もしもIAMロールにAdministratorAccessポリシーをアタッチしても、アクセス境界ポリシーでCloudWatch Logs, S3, DynamoDBしか操作が許可されていませんので、安全です。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS ,

ad

ad

  関連記事

Amazon EC2のAMIイメージを自動取得して保持日数が過ぎたら削除

画像の保存をEC2に戻した事もあってEC2のバックアップの自動取得を勉強がてらや …

このブログをAWS大阪リージョンへ移行しました

大阪リージョン爆誕!! 朝起きて寝ぼけながらリージョンを見てると。 「大阪リージ …

Developers Summit 2018 「AWSのフルマネージドな環境でCI/CDをやってみよう!AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介」を聞きました

※写真は展示のAmazon Echoです。 以下は、思ったことや気になったことを …

JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE + 絶対圧センサーで遊ぼう!」ワークショップにいってきた

JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE …

Application Load Balancer スティッキーセッションでどれぐらい偏るかを偶然見ました

Amazon Linux2のPHPを7.2から7.3へアップデートしましたでアッ …

Amazon LinuxにAlfresco Community Editionをインストールする

ダウンロード準備 Alfresco公式サイトで、「エンタープライズコンテンツ管理 …

2017年、このブログ(WordPress(Amazon EC2 + RDS))で対応してきたこと

Amazon Web Services Advent Calendar 2017 …

kintoneで設定したスケジュールにあわせてlambda(python)からSQSへメッセージを送る

EC2の起動停止をそろそろ手動でやるのも疲れてきそうなのと、やはり停止するのを忘 …

AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)

mauticをAmazon LinuxとNginx,MySQL on RDSにイ …

サイトのHTTPステータスを5分おきにチェックして200以外ならSlackに通知する

すいません。ここ最近出費が重なりまして、某監視サービスのプランを有料プランからF …