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

# Multi-cloud orchestration in SkyPilot

If you prefer using multiple cloud providers, you can connect SkyPilot to third-party clouds, in addition to Nebius AI Cloud. As a result, you can run workloads across different clouds, optimize your costs and more flexibly manage hardware configuration.

You can connect a SkyPilot cluster to Google Cloud, AWS and Runpod when you create a cluster or edit its settings in Nebius AI Cloud. To connect a third-party cloud, get credentials in this cloud and specify them in the SkyPilot cluster configuration.

## How to connect third-party clouds when creating a SkyPilot cluster

1. In the [web console](https://console.nebius.com/), go to <Icon icon="https://mintcdn.com/nebius-ai-cloud/rOlLZ_MFvrheaI-h/_assets/sidebar/ai-orchestration.svg?fit=max&auto=format&n=rOlLZ_MFvrheaI-h&q=85&s=905c61b0060cea84599ff0c72c55fe34" width="16" height="16" data-path="_assets/sidebar/ai-orchestration.svg" /> **AI orchestration** → **SkyPilot**.

   If you don't have a SkyPilot cluster yet, the creation page opens.

2. In the **Multi-cloud orchestration** section, add the clouds that you want to connect:

   <Tabs group="clouds">
     <Tab title="Google Cloud">
       1. In Google Cloud, create a service account and grant it the required roles. Then, generate a JSON key for this service account.

          For more information, see [SkyPilot documentation](https://docs.skypilot.ai/en/stable/cloud-setup/cloud-permissions/gcp.html#service-account).

       2. On the SkyPilot cluster form, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1" width="16" height="16" data-path="_assets/plus.svg" /> next to Google Cloud.

       3. Add the key to the **Service account key** field. Upload it as a file, or copy and paste its contents as a JSON.

       4. Specify the [project ID](https://support.google.com/googleapi/answer/7014113?hl=en) from Google Cloud.
     </Tab>

     <Tab title="AWS">
       1. In AWS, [create an access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-key-self-managed.html#Using_CreateAccessKey).

          After it's created, you can get the [access key ID and secret access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). Save them — you can only retrieve the secret access key right after creation.

       2. On the SkyPilot cluster form, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1" width="16" height="16" data-path="_assets/plus.svg" /> next to AWS.

       3. Specify the received data in the **Access key ID** and **Secret access key** fields.
     </Tab>

     <Tab title="Runpod">
       1. In Runpod, [create an API key](https://docs.runpod.io/get-started/api-keys#create-an-api-key).
       2. On the SkyPilot cluster form, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1" width="16" height="16" data-path="_assets/plus.svg" /> next to Runpod.
       3. Specify the key in the **API key** field.
     </Tab>
   </Tabs>

3. Click **Create cluster**.

You can only check that the third-party clouds are connected successfully in the SkyPilot web interface after the cluster starts running. To open the web interface, go to the public endpoint of the cluster.

## How to connect third-party clouds when updating a SkyPilot cluster

<Note>
  Connecting third-party clouds restarts the cluster.
</Note>

1. In the [web console](https://console.nebius.com/), go to <Icon icon="https://mintcdn.com/nebius-ai-cloud/rOlLZ_MFvrheaI-h/_assets/sidebar/ai-orchestration.svg?fit=max&auto=format&n=rOlLZ_MFvrheaI-h&q=85&s=905c61b0060cea84599ff0c72c55fe34" width="16" height="16" data-path="_assets/sidebar/ai-orchestration.svg" /> **AI orchestration** → **SkyPilot**.

   If a SkyPilot cluster is created, its page opens.

2. Go to the **Settings** tab.

3. In the **Multi-cloud orchestration** section, add the clouds that you want to connect:

   <Tabs group="clouds">
     <Tab title="Google Cloud">
       1. In Google Cloud, create a service account and grant it the required roles. Then, generate a JSON key for this service account.

          For more information, see [SkyPilot documentation](https://docs.skypilot.ai/en/stable/cloud-setup/cloud-permissions/gcp.html#service-account).

       2. On the SkyPilot cluster form, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1" width="16" height="16" data-path="_assets/plus.svg" /> next to Google Cloud.

       3. Add the key to the **Service account key** field. Upload it as a file, or copy and paste its contents as a JSON.

       4. Specify the [project ID](https://support.google.com/googleapi/answer/7014113?hl=en) from Google Cloud.
     </Tab>

     <Tab title="AWS">
       1. In AWS, [create an access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-key-self-managed.html#Using_CreateAccessKey).

          After it's created, you can get the [access key ID and secret access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html). Save them — you can only retrieve the secret access key right after creation.

       2. On the SkyPilot cluster form, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1" width="16" height="16" data-path="_assets/plus.svg" /> next to AWS.

       3. Specify the received data in the **Access key ID** and **Secret access key** fields.
     </Tab>

     <Tab title="Runpod">
       1. In Runpod, [create an API key](https://docs.runpod.io/get-started/api-keys#create-an-api-key).
       2. On the SkyPilot cluster form, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1" width="16" height="16" data-path="_assets/plus.svg" /> next to Runpod.
       3. Specify the key in the **API key** field.
     </Tab>
   </Tabs>

4. Click **Save changes**.

   After that, the cluster restarts.

You can only check that the third-party clouds are connected successfully in the SkyPilot web interface after the cluster restarts. To open this web interface, go to the public endpoint of the cluster.

## How to disconnect third-party clouds from a SkyPilot cluster

<Note>
  Disconnecting third-party clouds restarts the cluster.
</Note>

If you don't need third-party clouds anymore, disconnect them:

1. In the [web console](https://console.nebius.com/), go to <Icon icon="https://mintcdn.com/nebius-ai-cloud/rOlLZ_MFvrheaI-h/_assets/sidebar/ai-orchestration.svg?fit=max&auto=format&n=rOlLZ_MFvrheaI-h&q=85&s=905c61b0060cea84599ff0c72c55fe34" width="16" height="16" data-path="_assets/sidebar/ai-orchestration.svg" /> **AI orchestration** → **SkyPilot**.

   The cluster page opens.

2. Go to the **Settings** tab and then check the **Multi-cloud orchestration** section. It shows what clouds are currently added.

3. Next to the cloud that you want to remove, click <Icon icon="https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/pencil-to-line.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=9f557f28487b7fec78ae7508b5b6a145" width="16" height="16" data-path="_assets/pencil-to-line.svg" /> → **Remove**.

4. In the window that opens, confirm the action.

5. Click **Save changes**.

   After that, the cluster restarts.
