AWS: 開発者グループの作成

開発者グループとしてInfraUserGroupを作成する。このグループに所属することで開発者ロールにスイッチできるようにする。

  • [UserGroup] InfraUserGroup
    • [Policy(Customer)] InfraUserGroup-SwitchRolePolicy

InfraUserGroup-SwitchRolePolicyでは例えば基盤開発者用のロールと基盤管理者用のロールに変更できるよう次のような設定を行う。今回は任意のAWSアカウントを操作できるようにAWSアカウントの箇所はワイルドカード(*)としている。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/InfraPowerUserRole",
                "arn:aws:iam::*:role/InfraAdminRole"
            ]
        }
    ]
}

InfraPowerUserRoleではEC2の操作などでリージョンを限定しつつ、PowerUserAccessが行えるようにする。

  • [Role] InfraPowerUserRole
    • [Policy(AWS)] PowerUserAccess
    • [Policy(Customer)] AccessRegionControlPolicy
  • [Role] InfraAdminRole
    • [Policy(AWS)] AdministratorAccess
    • [Policy(Customer)] AccessRegionControlPolicy

AccessRegionControlPolicyでは特定の操作について東京リージョンのみで行えるようにする。EC2やRDSあたりで誤操作を防げればよいのでActionは適当に設定。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:*",
                "rds:*",
                "redshift:*",
                "ecs:*",
                "lambda:*",
                "dynamodb:*",
                "apigateway:*",
                "batch:*",
                "workspaces:*",
                "glue:*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "ap-northeast-1"
                    ]
                }
            }
        }
    ]
}

この場合、AdminRoleに変更した場合のEC2画面は次のようになる。バージニア北部では制限により読み込みエラーが発生しているが、東京リージョンでは制限が掛かっていない。