IAM ポリシーリソースをユーザーに直接関連付け

IAM ポリシーリソースのユーザー直接関連付けを確認し、共通権限を一貫して管理します。

説明

AWS::IAM::Policy の Users にユーザーを指定すると、そのユーザーにインラインポリシーを関連付けます。共通の業務権限を個別に関連付けると、変更や取り消しの際に管理が漏れやすくなります。

想定される影響

業務変更後も、個別のユーザーに不要な権限が残るおそれがあります。ポリシーをグループに移しても、許可する操作やリソースは自動的には狭まりません。

対処方法

共通権限を Groups に関連付け、承認済みのメンバーを管理してください。ワークロードには必要な権限を持つロールを優先してください。代わりのアクセスを確認してから直接の関連付けを削除し、例外は定期的に見直してください。

例

TestUser の宣言は省略しており、user_group は既存グループの名前です。オブジェクト ARN を実際の許可範囲に置き換えてください。グループのメンバーは別途管理する必要があります。

変更前

yaml
Resources:
  BadPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: example-access
      PolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Action: s3:GetObject
            Resource: arn:aws:s3:::example-bucket/*
      Users:
        - Ref: TestUser

オブジェクト読み取り権限をユーザーに直接関連付けています。

変更後

yaml
Resources:
  BadPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: example-access
      PolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Action: s3:GetObject
            Resource: arn:aws:s3:::example-bucket/*
      Groups:
        - user_group

同じ権限をグループに関連付けています。ポリシーの操作とリソース範囲は変わりません。

参考資料