[AWS]組織レベルで特定ユーザーのみ操作を許可する

SCPを使って、S3バケットを作成できるユーザー制限をしてみました。
2019.11.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ、千葉です。

アカウントや組織(OU)レベルで特定のユーザーのみ操作できるように設定してみました。具体的には、chiba.junというIAMユーザーまたはIAMロールのみS3バケットを作成する権限を付与し、それ以外のユーザーではS3バケットが作成できないようにしてみました。これを応用することで、さまざまな操作を特定のユーザーのみに限定できます。

やってみた

どうやるか、まずは以下のSCPに設定するポリシーを御覧ください。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Deny",
"Action": [
"s3:CreateBucket"
],
"Resource": [
"*"
],
"Condition": {
"StringNotLike": {
"aws:PrincipalArn": "*chiba.jun*"
}
}
}
]
}

まずは、Effect:DenyAction:s3:CreateBucketの部分でS3バケット作成できないポリシーを入れています。次に、Conditionで特定のユーザーを除外しています。つまり、除外したユーザーはS3バケットを作成できます。 aws:PrincipalArnは、IAMユーザーまたはIAMロールのARNを指定します。今回は、ワイルドカードを使って名前が一致するIAMユーザーとIAMロールを許可しています。

マネージメントコンソールからOrganizationsへ移動します。まずはSCPポリシーを作成します。上記のポリシーを参考にaws:PrincipalArnを任意に変更して設定してください。

OUに対しSCPポリシーを設定します。。今回はOU chiba に対してポリシーを適用します。

それでは、対象のOU配下のアカウントに対してS3バケットを作成してみます。まずは、chiba.junユーザーで操作を行います。

問題なく作成できました!次にchiba.jun以外のユーザーでS3バケットを作成してみます。

権限エラーで作成できません!

さいごに

SCPを使い、特定のユーザーのみ操作権限を与えることができました。例えばIAMユーザー作成をとあるユーザーに制限することもできます。SCPを活用して素敵なAWSライフを!

参考

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_condition-keys.html