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

コンニチハ、千葉です。

アカウントや組織(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