AWSでIAMを触り始めたときにPowerUserという言葉を聞くかもしれません。
PowerUserって何?Administratorとどう違うの?ということについて紹介します。
違いはIAMに関する権限
PowerUserとAdministratorの違いは、
アカウント管理系の操作ができるかできないか
です。
アカウント管理系の操作ができるかできないか
Administratorではすべての操作をすべてのリソースに対して実行可能ですが、
PowerUserはユーザやAWSアカウント、組織以外の操作をすべてのリソースに対して実行可能です。
なお、PowerUserもAdministratorも予めAWSに用意されているIAMポリシーです。
なのでPowerUserやAdministratorというユーザがいるわけではないです。
PowerUserやAdministratorというユーザが用意されているわけではない
IAMポリシーをIAMユーザやIAMロールにアタッチすることでポリシーで定義されている権限を付与することができます。
それぞれのポリシーを具体的に見ていきます。
AdministratorAccess
AdministratorAccessという名前のIAMポリシーがAWSによって予め用意されています。
中身は以下のようになっており、すべての操作をすべてのリソースにできることが分かります。
いわゆるAdminです。
ただし、AWS OrganizationsのSCP(サービスコントロールポリシー)を使ってさらに上の階層から操作を制限することもできます。https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps.html
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
PowerUserAccess
PowerUserAccessという名前のIAMポリシーがAWSによって予め用意されています。
中身は以下です。以前よりも少し複雑になっています。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"NotAction": [
"iam:*",
"organizations:*",
"account:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole",
"iam:DeleteServiceLinkedRole",
"iam:ListRoles",
"organizations:DescribeOrganization",
"account:ListRegions"
],
"Resource": "*"
}
]
}
Descriptionには「Provides full access to AWS services and resources, but does not allow management of Users and groups.」とあります。
なんでもできる権限がありますが、IAM、組織、AWSアカウントに関する操作が禁止されています。例えば新規にIAMユーザを作成する、といったことはできません。
ただし、組織情報取得、利用可能なリージョン一覧取得、IAMロール一覧取得、サービスリンクロールの作成/削除はできます。
AWSでは複数のAWSサービスを組み合わせて使うのが通常なのでこのくらいはできないと困る、ということですかね。
*サービスリンクロールとは、あるサービスを使う上で必須サービス(例えばCloudWatchなど)と権限を予めAWSが定義したポリシーを持つIAMロールのことです。どのサービスが連携に必要なのか分からない場合や不必要な権限付与を防ぐ際に活用できる仕組みです。https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/using-service-linked-roles.html
まとめ
- PowerUserとAdministratorの違いは「アカウント管理系の操作ができるかできないか」
- PowerUserとAdministratorというIAMユーザが用意されているわけではなく、IAMポリシーが用意されている
場合によってはPowerUserの人にもIAMロールを作れるようにしたいケースもあるかと思います。
そんなときの方法は以下で紹介しています。