IAM グループでインラインポリシーを使用

IAM グループの共通権限を管理ポリシーで再利用し、変更を一貫して管理します。

説明

IAM グループのインラインポリシーはグループに埋め込まれ、グループと一緒に削除されます。同じ権限をグループごとに定義すると、再利用や集中管理が難しくなります。インラインポリシー自体が過剰な権限を意味するわけではありません。

想定される影響

重複したポリシーの内容に差が生じたり、古い権限が残ったりするおそれがあります。グループの削除でポリシーも失われるため、復旧や変更の追跡が複雑になる場合があります。

対処方法

再利用する共通権限は AWS::IAM::ManagedPolicy に分離する方法を優先してください。既存の権限と条件を比較し、管理ポリシーを関連付けてからインラインポリシーを削除してください。必要なアクセスが維持されることも確認してください。

例

myqueue の宣言は省略しています。変更後はインラインポリシーのないグループだけを示しており、代わりの管理ポリシーは別途関連付ける必要があります。

変更前

yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: A sample template
Resources:
  myuser:
    Type: AWS::IAM::Group
    Properties:
      Path: "/"
      Policies:
        - PolicyName: giveaccesstoqueueonly
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - sqs:*
                Resource:
                  - !GetAtt myqueue.Arn
              - Effect: Deny
                Action:
                  - sqs:*
                NotResource:
                  - !GetAtt myqueue.Arn

キューの権限をグループのインラインポリシーに直接定義しています。

変更後

yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: A sample template
Resources:
  myuser:
    Type: AWS::IAM::Group

グループにインラインポリシーはありません。この例だけでは、元のキューアクセスは維持されません。

参考資料