{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "s3scan test user",
    "Resources": {
        "TestUser": {
            "Type": "AWS::IAM::User",
            "Properties": {
                "Policies": [
                    {
                        "PolicyName": "s3scan-test",
                        "PolicyDocument": {
                            "Statement": [
                                {
                                    "Effect": "Allow",
                                    "Action": [
                                        "s3:ListBucket"
                                    ],
                                    "Resource": [
                                        "arn:aws:s3:::mapbox"
                                    ],
                                    "Condition": {
                                        "StringLike": {
                                            "s3:prefix": [
                                                "s3scan-test/*"
                                            ]
                                        }
                                    }
                                },
                                {
                                    "Effect": "Allow",
                                    "Action": [
                                        "s3:PutObject",
                                        "s3:GetObject",
                                        "s3:DeleteObject"
                                    ],
                                    "Resource": [
                                        "arn:aws:s3:::mapbox/s3scan-test/*"
                                    ]
                                }
                            ]
                        }
                    }
                ]
            }
        },
        "TestUserAccessKey": {
            "Type": "AWS::IAM::AccessKey",
            "Properties": {
                "UserName": { "Ref": "TestUser" }
            }
        }
    },
    "Outputs": {
        "AccessKeyId": {
            "Value": { "Ref": "TestUserAccessKey" }
        },
        "SecretAccessKey": {
            "Value": {
                "Fn::GetAtt": [
                    "TestUserAccessKey",
                    "SecretAccessKey"
                ]
            }
        }
    }
}
