# Pre-installation steps

## 1. Setup artifact storage

Create an AWS S3 bucket for artifacts. Next, add CORS permissions to the bucket you created:

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT"
        ],
        "AllowedOrigins": [
            "https://console.paperspace.com"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]
```

To add these permissions, navigate to the S3 bucket settings in the AWS console, then select the Permissions tab and the CORS Configuration button:

![](/files/-M7nqoT8vE-klx0To6kh)

Next, create a dedicated IAM user with Programmatic Access for read/write access to the S3 bucket with the following policy:

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGeneratedUrls",
            "Effect": "Allow",
            "Action": "sts:GetFederationToken",
            "Resource": "*"
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::[bucket_name]"
        },
        {
            "Sid": "AllowBucketAccess",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::[bucket_name]/*"
        }
    ]
}
```

On the user's Security Credentials tab, create an access key for this user, which will be used when registering your cluster in the Paperspace web console.

## 2. SSL

Gradient uses a wildcard SSL certificate to secure HTTP traffic into your processing site. The installer can provide an automatic certificate if you have a supported DNS provider ([supported DNS providers](/gradient/master/gradient-private-cloud/setup/self-hosted-clusters/lets-encrypt-dns-providers.md)) or you can provide your own.

If you decide to provide your own SSL certificate, you will need two files: one private key file and one .crt file that contains your entire certificate chain including any root or intermediate certificates. (Example: <https://support.comodo.com/index.php?/Knowledgebase/Article/View/1145/1/how-do-i-make-my-own-bundle-file-from-crt-files>)

Example:

* `*.gradient.mycompany.com`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://paperspace.gitbook.io/gradient/master/gradient-private-cloud/setup/self-hosted-clusters/pre-installation-steps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
