> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Add integrations

### Integrating your service to VESSL

You can integrate various services to VESSL using AWS, Docker, and SSH Keys. The integrated AWS and Docker credentials are used to manage private docker images, whereas the SSH Keys are used for authorized keys for SSH connection.

### AWS Credentials

#### Using access token

You can create access key token by following this [guide from AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). Once you have your key, click **+ Add** button, select token and fill in the form.

For external storage feature, we recommend to add the following roles to your credentials.

<CodeGroup>
  ```json Import volume theme={null}
  {
    "Version": "2012-10-17",
    "Statement": {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::{bucket name}",
        "arn:aws:s3:::{bucket name}/*"
      ]
    }
  }
  ```

  ```json Export volume theme={null}
  {
    "Version": "2012-10-17",
    "Statement": {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListBucketMultipartUploads",
        "s3:AbortMultipartUpload"
      ],
      "Resource": [
        "arn:aws:s3:::{bucket name}",
        "arn:aws:s3:::{bucket name}/*"
      ]
    }
  }
  ```

  ```json Permissions CORS theme={null}
  [
      {
          "AllowedHeaders": [
              "*"
          ],
          "AllowedMethods": [
              "GET",
              "POST",
              "PUT",
              "DELETE"
          ],
          "AllowedOrigins": [
              "https://app.vessl.ai"
          ],
          "ExposeHeaders": []
      }
  ]
  ```
</CodeGroup>

<img style={{ borderRadius: "0.5rem" }} src="https://mintcdn.com/vesslai/jOLsLIzbNfRBXuYh/images/organization/integrations/aws-integration-token.png?fit=max&auto=format&n=jOLsLIzbNfRBXuYh&q=85&s=caae8b972be03148baf06f48f82d08b9" width="826" height="629" data-path="images/organization/integrations/aws-integration-token.png" />

#### Using IAM role

You can create an IAM role by following [guide from AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). Select role and fill in the form.

<img style={{ borderRadius: "0.5rem" }} src="https://mintcdn.com/vesslai/jOLsLIzbNfRBXuYh/images/organization/integrations/aws-integration-role.png?fit=max&auto=format&n=jOLsLIzbNfRBXuYh&q=85&s=bc5b63d9291ef31067045edcf96093c5" width="772" height="614" data-path="images/organization/integrations/aws-integration-role.png" />

You can integrate multiple AWS credentials into your organization. You can also revoke your credentials by simply clicking the trash button on the right.

<img style={{ borderRadius: "0.5rem" }} src="https://mintcdn.com/vesslai/q8PNhBb-7_q5awBv/images/organization/integrations/2_aws-cred.png?fit=max&auto=format&n=q8PNhBb-7_q5awBv&q=85&s=e6c9b7549dc3a6e2217dd6b483ff7f99" width="1118" height="542" data-path="images/organization/integrations/2_aws-cred.png" />

<Note>
  If you want to pull images from
  [ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  , make sure to provide the [ECR pull policy granted
  account.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html)
</Note>

### GCP

You can integrate your GCP Project by binding your Google Cloud IAM Service Account. Create service account by following the [guide from GCP](https://cloud.google.com/iam/docs/service-accounts-create#iam-service-accounts-create-gcloud) and get your key JSON by [another GCP guide](https://cloud.google.com/iam/docs/keys-list-get#get-key). Fill in the form with the values.

<img style={{ borderRadius: "0.5rem" }} src="https://mintcdn.com/vesslai/jOLsLIzbNfRBXuYh/images/organization/integrations/gcp.png?fit=max&auto=format&n=jOLsLIzbNfRBXuYh&q=85&s=15577fd5aa77773b4fcf3702a326f042" width="910" height="1026" data-path="images/organization/integrations/gcp.png" />

### Docker credentials

To integrate your Docker account, click **Add integration** and fill in your Docker credentials.

<img style={{ borderRadius: "0.5rem" }} src="https://mintcdn.com/vesslai/q8PNhBb-7_q5awBv/images/organization/integrations/3_docker.png?fit=max&auto=format&n=q8PNhBb-7_q5awBv&q=85&s=e118f1a0c3c8a6a0592119046c544922" width="2880" height="1800" data-path="images/organization/integrations/3_docker.png" />

### GitHub

To integrate your GitHub account, click **Add integration**. Grant repository access to the VESSL app in the repository access section and click save in GitHub.

<img style={{ borderRadius: "0.5rem" }} src="https://mintcdn.com/vesslai/jOLsLIzbNfRBXuYh/images/organization/integrations/4_github.png?fit=max&auto=format&n=jOLsLIzbNfRBXuYh&q=85&s=867f7abf654533f1321c4f8cab04ea2f" width="1013" height="821" data-path="images/organization/integrations/4_github.png" />
