この記事は公開されてから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:Deny
とAction: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