グループに所属していないIAMユーザー

共通の業務に基づいてユーザー権限を管理できるか確認してください。

説明

グループに所属しないIAMユーザーでは、権限をユーザーごとに管理する必要が生じる場合があります。グループがないというだけで、権限が付与されたり、アカウントが公開されたりするわけではありません。

想定される影響

個別の例外が増えると、確認や取り消しの際に権限を見落とすおそれがあります。

対処方法

共通の権限が必要なユーザーを適切なGroupsに所属させ、グループのポリシーとメンバーを合わせて確認してください。不要なグループ権限を付与しないでください。

例

グループ所属を追加する抜粋です。QAGroup、myqueue、ConsolePasswordシークレットのpassword値は別途用意してください。例に残る直接ポリシーについても、移行の必要性を確認してください。

変更前

yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: グループ所属の比較例
Resources:
    MyUser:
      Type: AWS::IAM::User
      Properties:
        Path: "/"
        LoginProfile:
          Password: '{{resolve:secretsmanager:ConsolePassword:SecretString:password}}'
        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
        Tags:
          - Key: Name
            Value: QAUser
        UserName: TestUser

変更後

yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: グループ所属の比較例
Resources:
  addUserToGroup2:
    Type: AWS::IAM::User
    Properties:
      Groups:
        - QAGroup
      LoginProfile:
          Password: '{{resolve:secretsmanager:ConsolePassword:SecretString:password}}'
      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
      Tags:
        - Key: Name
          Value: QAUser
      UserName: TestUser

参考資料