Перейти к основному содержимому
Перейти к основному содержимому

How to create an AWS IAM user and S3 bucket

This guide shows you how you can set up an IAM user and S3 bucket in AWS, a prerequisite step for taking backups to S3 or configuring ClickHouse to store data on S3

Create an AWS IAM user

In this procedure, we'll be creating a service account user, not a login user.

  1. Log into the AWS IAM Management Console.

  2. In the Users tab, select Create user

AWS IAM Management Console - Adding a new user
  1. Enter a user-name
AWS IAM Management Console - Adding a new user
  1. Select Next
AWS IAM Management Console - Adding a new user
  1. Select Next
AWS IAM Management Console - Adding a new user
  1. Select Create user

The user is now created. Click on the newly created user

AWS IAM Management Console - Adding a new user
  1. Select Create access key
AWS IAM Management Console - Adding a new user
  1. Select Application running outside AWS
AWS IAM Management Console - Adding a new user
  1. Select Create access key
AWS IAM Management Console - Adding a new user
  1. Download your access key and secret as a .csv for use later
AWS IAM Management Console - Adding a new user

Create an S3 bucket

  1. In the S3 bucket section, select Create bucket
AWS IAM Management Console - Adding a new user
  1. Enter a bucket name, leave other options default
AWS IAM Management Console - Adding a new user
примечание

The bucket name must be unique across AWS, not just the organization, or it will emit an error.

  1. Leave Block all Public Access enabled; public access is not needed.
AWS IAM Management Console - Adding a new user
  1. Select Create Bucket at the bottom of the page
AWS IAM Management Console - Adding a new user
  1. Select the link, copy the ARN, and save it for use when configuring the access policy for the bucket
AWS IAM Management Console - Adding a new user
  1. Once the bucket has been created, find the new S3 bucket in the S3 buckets list and select the bucket name which will take you to the page shown below:
AWS IAM Management Console - Adding a new user
  1. Select Create folder

  2. Enter a folder name that will be the target for the ClickHouse S3 disk or backup and select Create folder at the bottom of the page

AWS IAM Management Console - Adding a new user
  1. The folder should now be visible on the bucket list
AWS IAM Management Console - Adding a new user
  1. Select the checkbox for the new folder and click on Copy URL. Save the URL for use in the ClickHouse storage configuration in the next section.
AWS IAM Management Console - Adding a new user
  1. Select the Permissions tab and click on the Edit button in the Bucket Policy section
AWS IAM Management Console - Adding a new user
  1. Add a bucket policy, example below
{
    "Version": "2012-10-17",
    "Id": "Policy123456",
    "Statement": [
        {
            "Sid": "abc123",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::782985192762:user/docs-s3-user"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::ch-docs-s3-bucket",
                "arn:aws:s3:::ch-docs-s3-bucket/*"
            ]
        }
    ]
}
примечание

The policy above makes it possible to perform all actions on the bucket

ParameterDescriptionExample Value
VersionVersion of the policy interpreter, leave as-is2012-10-17
SidUser-defined policy idabc123
EffectWhether user requests will be allowed or deniedAllow
PrincipalThe accounts or user that will be allowedarn:aws:iam::782985192762:user/docs-s3-user
ActionWhat operations are allowed on the buckets3:*
ResourceWhich resources in the bucket will operations be allowed in"arn:aws:s3:::ch-docs-s3-bucket", "arn:aws:s3:::ch-docs-s3-bucket/*"
примечание

You should work with your security team to determine the permissions to be used, consider these as a starting point. For more information on Policies and settings, refer to AWS documentation: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html

  1. Save the policy configuration