From f09b0abcaccf874d7e2a99ca9f596359cc28abb7 Mon Sep 17 00:00:00 2001 From: Docsite Preview Bot <> Date: Tue, 27 Aug 2024 08:05:00 +0000 Subject: [PATCH] Preview PR https://github.com/pingcap/docs/pull/18605 and this preview is triggered from commit https://github.com/pingcap/docs/pull/18605/commits/8385bbe3e4dbc2bdcbb92dce0f4babb88a20076d --- .../serverless-role-arn.png | Bin 0 -> 113740 bytes .../tidb-cloud/config-s3-and-gcs-access.md | 216 ++++++++++++++++++ .../master/tidb-cloud/serverless-export.md | 151 ++++++------ .../tidb-cloud/serverless-external-storage.md | 171 ++++++++++++-- 4 files changed, 438 insertions(+), 100 deletions(-) create mode 100644 markdown-pages/en/tidbcloud/master/media/tidb-cloud/serverless-external-storage/serverless-role-arn.png create mode 100644 markdown-pages/en/tidbcloud/master/tidb-cloud/config-s3-and-gcs-access.md diff --git a/markdown-pages/en/tidbcloud/master/media/tidb-cloud/serverless-external-storage/serverless-role-arn.png b/markdown-pages/en/tidbcloud/master/media/tidb-cloud/serverless-external-storage/serverless-role-arn.png new file mode 100644 index 0000000000000000000000000000000000000000..509f1bf06940dd9f840fdfe3f596520b0c6a754e GIT binary patch literal 113740 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

S5J*V@V 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 literal 0 HcmV?d00001 diff --git a/markdown-pages/en/tidbcloud/master/tidb-cloud/config-s3-and-gcs-access.md b/markdown-pages/en/tidbcloud/master/tidb-cloud/config-s3-and-gcs-access.md new file mode 100644 index 00000000..a53802b2 --- /dev/null +++ b/markdown-pages/en/tidbcloud/master/tidb-cloud/config-s3-and-gcs-access.md @@ -0,0 +1,216 @@ +--- +title: Configure External Storage Access for TiDB Dedicated +summary: Learn how to configure Amazon Simple Storage Service (Amazon S3) access and Google Cloud Storage (GCS) access. +--- + +# Configure External Storage Access for TiDB Dedicated + +If your source data is stored in Amazon S3 or Google Cloud Storage (GCS) buckets, before importing or migrating the data to TiDB Cloud, you need to configure cross-account access to the buckets. This document describes how to do this. + +If you need to configure these external storages for TiDB Serverless, see [Configure External Storage Access for TiDB Serverless](/tidb-cloud/serverless-external-storage.md). + +## Configure Amazon S3 access + +To allow TiDB Cloud to access the source data in your Amazon S3 bucket, you need to configure the bucket access for TiDB Cloud. You can use either of the following methods to configure the bucket access: + +- Use an AWS access key: use the access key of an IAM user to access your Amazon S3 bucket. +- Use a Role ARN: use a Role ARN to access your Amazon S3 bucket. + + +

+ +Configure the bucket access for TiDB Cloud and get the Role ARN as follows: + +1. In the [TiDB Cloud console](https://tidbcloud.com/), get the TiDB Cloud account ID and external ID of the target TiDB cluster. + + 1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. + + > **Tip:** + > + > If you have multiple projects, you can click in the lower-left corner and switch to another project. + + 2. Click the name of your target cluster to go to its overview page, and then click **Import** in the left navigation pane. + + 3. On the **Import** page, click **Import Data** in the upper-right corner and select **From S3**. + + 4. On the **Import from S3** page, click **Guide for getting the required Role ARN** to get the TiDB Cloud Account ID and TiDB Cloud External ID. Take a note of these IDs for later use. + +2. In the AWS Management Console, create a managed policy for your Amazon S3 bucket. + + 1. Sign in to the AWS Management Console and open the Amazon S3 console at [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/). + 2. In the **Buckets** list, choose the name of your bucket with the source data, and then click **Copy ARN** to get your S3 bucket ARN (for example, `arn:aws:s3:::tidb-cloud-source-data`). Take a note of the bucket ARN for later use. + + ![Copy bucket ARN](/media/tidb-cloud/copy-bucket-arn.png) + + 3. Open the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), click **Policies** in the navigation pane on the left, and then click **Create Policy**. + + ![Create a policy](/media/tidb-cloud/aws-create-policy.png) + + 4. On the **Create policy** page, click the **JSON** tab. + 5. Copy the following access policy template and paste it to the policy text field. + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": [ + "s3:GetObject", + "s3:GetObjectVersion" + ], + "Resource": "//*" + }, + { + "Sid": "VisualEditor1", + "Effect": "Allow", + "Action": [ + "s3:ListBucket", + "s3:GetBucketLocation" + ], + "Resource": "" + } + ] + } + ``` + + In the policy text field, update the following configurations to your own values. + + - `"Resource": "//*"` + + For example, if your source data is stored in the root directory of the `tidb-cloud-source-data` bucket, use `"Resource": "arn:aws:s3:::tidb-cloud-source-data/*"`. If your source data is stored in the `mydata` directory of the bucket, use `"Resource": "arn:aws:s3:::tidb-cloud-source-data/mydata/*"`. Make sure that `/*` is added to the end of the directory so TiDB Cloud can access all files in this directory. + + - `"Resource": ""` + + For example, `"Resource": "arn:aws:s3:::tidb-cloud-source-data"`. + + - If you have enabled AWS Key Management Service key (SSE-KMS) with customer-managed key encryption, make sure the following configuration is included in the policy. `"arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f"` is a sample KMS key of the bucket. + + ``` + { + "Sid": "AllowKMSkey", + "Effect": "Allow", + "Action": [ + "kms:Decrypt" + ], + "Resource": "arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f" + } + ``` + + If the objects in your bucket have been copied from another encrypted bucket, the KMS key value needs to include the keys of both buckets. For example, `"Resource": ["arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f","arn:aws:kms:ap-northeast-1:495580073302:key/0d7926a7-6ecc-4bf7-a9c1-a38f0faec0cd"]`. + + 6. Click **Next: Tags**, add a tag of the policy (optional), and then click **Next:Review**. + + 7. Set a policy name, and then click **Create policy**. + +3. In the AWS Management Console, create an access role for TiDB Cloud and get the role ARN. + + 1. In the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), click **Roles** in the navigation pane on the left, and then click **Create role**. + + ![Create a role](/media/tidb-cloud/aws-create-role.png) + + 2. To create a role, fill in the following information: + + - Under **Trusted entity type**, select **AWS account**. + - Under **An AWS account**, select **Another AWS account**, and then paste the TiDB Cloud account ID to the **Account ID** field. + - Under **Options**, click **Require external ID (Best practice when a third party will assume this role)**, and then paste the TiDB Cloud External ID to the **External ID** field. If the role is created without "Require external ID", once the configuration is done for one TiDB cluster in a project, all TiDB clusters in that project can use the same Role ARN to access your Amazon S3 bucket. If the role is created with the account ID and external ID, only the corresponding TiDB cluster can access the bucket. + + 3. Click **Next** to open the policy list, choose the policy you just created, and then click **Next**. + 4. Under **Role details**, set a name for the role, and then click **Create role** in the lower-right corner. After the role is created, the list of roles is displayed. + 5. In the list of roles, click the name of the role that you just created to go to its summary page, and then copy the role ARN. + + ![Copy AWS role ARN](/media/tidb-cloud/aws-role-arn.png) + +4. In the TiDB Cloud console, go to the **Data Import** page where you get the TiDB Cloud account ID and external ID, and then paste the role ARN to the **Role ARN** field. + +
+
+ +It is recommended that you use an IAM user (instead of the AWS account root user) to create an access key. + +Take the following steps to configure an access key: + +1. Create an IAM user with the following policies: + + - `AmazonS3ReadOnlyAccess` + - [`CreateOwnAccessKeys` (required) and `ManageOwnAccessKeys` (optional)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#access-keys_required-permissions) + + It is recommended that these policies only work for your bucket that stores the source data. + + For more information, see [Creating an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console). + +2. Use your AWS account ID or account alias, and your IAM user name and password to sign in to [the IAM console](https://console.aws.amazon.com/iam). + +3. Create an access key. For more details, see [Creating an access key for an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey). + +> **Note:** +> +> TiDB Cloud does not store your access keys. It is recommended that you [delete the access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey) after the import is complete. + +
+ + +## Configure GCS access + +To allow TiDB Cloud to access the source data in your GCS bucket, you need to configure the GCS access for the bucket. Once the configuration is done for one TiDB cluster in a project, all TiDB clusters in that project can access the GCS bucket. + +1. In the TiDB Cloud console, get the Google Cloud Service Account ID of the target TiDB cluster. + + 1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. + + > **Tip:** + > + > If you have multiple projects, you can click in the lower-left corner and switch to another project. + + 2. Click the name of your target cluster to go to its overview page, and then click **Import** in the left navigation pane. + + 3. Click **Import Data** in the upper-right corner, click **Show Google Cloud Service Account ID**, and then copy the Service Account ID for later use. + +2. In the Google Cloud console, create an IAM role for your GCS bucket. + + 1. Sign in to the [Google Cloud console](https://console.cloud.google.com/). + 2. Go to the [Roles](https://console.cloud.google.com/iam-admin/roles) page, and then click **CREATE ROLE**. + + ![Create a role](/media/tidb-cloud/gcp-create-role.png) + + 3. Enter a name, description, ID, and role launch stage for the role. The role name cannot be changed after the role is created. + 4. Click **ADD PERMISSIONS**. + 5. Add the following read-only permissions to the role, and then click **Add**. + + - storage.buckets.get + - storage.objects.get + - storage.objects.list + + You can copy a permission name to the **Enter property name or value** field as a filter query, and choose the name in the filter result. To add the three permissions, you can use **OR** between the permission names. + + ![Add permissions](/media/tidb-cloud/gcp-add-permissions.png) + +3. Go to the [Bucket](https://console.cloud.google.com/storage/browser) page, and click the name of the GCS bucket you want TiDB Cloud to access. + +4. On the **Bucket details** page, click the **PERMISSIONS** tab, and then click **GRANT ACCESS**. + + ![Grant Access to the bucket ](/media/tidb-cloud/gcp-bucket-permissions.png) + +5. Fill in the following information to grant access to your bucket, and then click **SAVE**. + + - In the **New Principals** field, paste the Google Cloud Service Account ID of the target TiDB cluster. + - In the **Select a role** drop-down list, type the name of the IAM role you just created, and then choose the name from the filter result. + + > **Note:** + > + > To remove the access to TiDB Cloud, you can simply remove the access that you have granted. + +6. On the **Bucket details** page, click the **OBJECTS** tab. + + If you want to copy a file's gsutil URI, select the file, click **Open object overflow menu**, and then click **Copy gsutil URI**. + + ![Get bucket URI](/media/tidb-cloud/gcp-bucket-uri01.png) + + If you want to use a folder's gsutil URI, open the folder, and then click the copy button following the folder name to copy the folder name. After that, you need to add `gs://` to the beginning and `/` to the end of the name to get a correct URI of the folder. + + For example, if the folder name is `tidb-cloud-source-data`, you need to use `gs://tidb-cloud-source-data/` as the URI. + + ![Get bucket URI](/media/tidb-cloud/gcp-bucket-uri02.png) + +7. In the TiDB Cloud console, go to the **Data Import** page where you get the Google Cloud Service Account ID, and then paste the GCS bucket gsutil URI to the **Bucket gsutil URI** field. For example, paste `gs://tidb-cloud-source-data/`. diff --git a/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-export.md b/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-export.md index a0e62719..0f981ff7 100644 --- a/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-export.md +++ b/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-export.md @@ -19,9 +19,9 @@ You can export data to: - Local file - External storage - - [Amazon S3](https://aws.amazon.com/s3/) - - [Google Cloud Storage](https://cloud.google.com/storage) - - [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/) + - [Amazon S3](https://aws.amazon.com/s3/) + - [Google Cloud Storage](https://cloud.google.com/storage) + - [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/) > **Note:** > @@ -29,9 +29,9 @@ You can export data to: ### Local file -Exporting data to local file has the following limitations: +Exporting data to a local file has the following limitations: -- You can only download the exported data with the [TiDB Cloud CLI](/tidb-cloud/cli-reference.md), download on the console is not supported. +- You can only download the exported data with the [TiDB Cloud CLI](/tidb-cloud/cli-reference.md). Downloading on the TiDB Cloud console is not supported. - Exported data is saved in the stashing area and will expire after two days. You need to download the exported data in time. - If the storage space of stashing area is full, you will not be able to export data to the local file. @@ -41,10 +41,10 @@ To export data to Amazon S3, you need to provide the following information: - uri: `s3:///` - one of the following access methods: - - [access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html): make sure the access key has the `s3:PutObject` and `s3:ListBucket` permissions. - - [role arn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html): make sure the role arn has the `s3:PutObject` and `s3:ListBucket` permissions. + - [An access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html): make sure the access key has the `s3:PutObject` and `s3:ListBucket` permissions. + - [A role ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html): make sure the role ARN has the `s3:PutObject` and `s3:ListBucket` permissions. -See [Configure TiDB Cloud Serverless external storage access](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access) to learn how to configure the Amazon S3 access. +See [Configure External Storage Access for TiDB Serverless](/tidb-cloud/serverless-external-storage.md#configure-amazon-s3-access) to learn how to configure the Amazon S3 access. ### Google Cloud Storage @@ -53,7 +53,7 @@ To export data to Google Cloud Storage, you need to provide the following inform - uri: `gs:///` - access method: a **base64 encoded** [service account key](https://cloud.google.com/iam/docs/creating-managing-service-account-keys) for your bucket. Make sure the service account key has the `storage.objects.create` permission. -See [Configure TiDB Cloud Serverless external storage access](/tidb-cloud/serverless-external-storage.md#configure-gcs-access) to learn how to configure the Google Cloud Storage access. +See [Configure External Storage Access for TiDB Serverless](/tidb-cloud/serverless-external-storage.md#configure-gcs-access) to learn how to configure the Google Cloud Storage access. > **Note:** > @@ -66,7 +66,7 @@ To export data to Azure Blob Storage, you need to provide the following informat - uri: `azure://.blob.core.windows.net//` - access method: a [shared access signature (SAS) token](https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview) for your Azure Blob Storage container. Make sure the SAS token has the `Read` and `Write` permissions on the `Container` and `Object` resources. -See [Configure TiDB Cloud Serverless external storage access](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-access) to learn how to configure the Azure Blob Storage access. +See [Configure External Storage Access for TiDB Serverless](/tidb-cloud/serverless-external-storage.md#configure-azure-blob-access) to learn how to configure the Azure Blob Storage access. > **Note:** > @@ -85,11 +85,11 @@ You can export data in the following formats: - `SQL`: export data in SQL format. - `CSV`: export data in CSV format, you can specify the following options: - - `delimiter`: specify the delimiter used in the exported data. The default delimiter is `"`. - - `separator`: specify the character used to separate fields in the exported data. The default separator is `,`. - - `header`: specify whether to include a header row in the exported data. The default value is `true`. - - `null-value`: specify the string that represents a NULL value in the exported data. The default value is `\N`. -- `Parquet`: export data in Parquet format.(Only supported in TiDB Cloud CLI now) + - `delimiter`: specify the delimiter used in the exported data. The default delimiter is `"`. + - `separator`: specify the character used to separate fields in the exported data. The default separator is `,`. + - `header`: specify whether to include a header row in the exported data. The default value is `true`. + - `null-value`: specify the string that represents a NULL value in the exported data. The default value is `\N`. +- `Parquet`: export data in Parquet format. It is only supported in TiDB Cloud CLI now. The schema and data are exported according to the following naming conventions: @@ -101,68 +101,63 @@ The schema and data are exported according to the following naming conventions: ### Data compression -You can compress the exported csv and sql data using the following algorithms: +You can compress the exported CSV and SQL data using the following algorithms: - `gzip` (default): compress the exported data with gzip. - `snappy`: compress the exported data with snappy. - `zstd`: compress the exported data with zstd. - `none`: do not compress the exported data. -You can compress the exported parquet data using the following algorithms: -- `zstd`(default): compress the parquet file with zstd. -- `gzip`: compress the parquet file with gzip. -- `snappy`: compress the parquet file with snappy. -- `none`: do not compress the parquet file. +You can compress the exported Parquet data using the following algorithms: + +- `zstd `(default): compress the Parquet file with zstd. +- `gzip`: compress the Parquet file with gzip. +- `snappy`: compress the Parquet file with snappy. +- `none`: do not compress the Parquet file. ## Examples -### Export data to local file +### Export data to a local file
-1. Open the **Import** page for your target cluster. - - 1. Log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. - - > **Tip:** - > - > If you have multiple projects, you can click in the lower-left corner and switch to another project. - - 2. Click the name of your target cluster to go to its overview page, and then click **Import** in the left navigation pane. +1. Log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. -2. Configure the export information. On the **Import** page: + > **Tip:** + > + > If you have multiple projects, you can click in the lower-left corner and switch to another project. - - Click **Export Data to** in the upper-right corner, then choose **Local File** from the drop-down list. +2. Click the name of your target cluster to go to its overview page, and then click **Import & Export** in the left navigation pane. - Fill in the following parameters: +3. On the **Import & Export** page, click **Export Data to** in the upper-right corner, then choose **Local File** from the drop-down list. Fill in the following parameters: - - **Task Name**: enter a name for the export task, default is `SNAPSHOT_{snapshot_time}`. + - **Task Name**: enter a name for the export task. The default is `SNAPSHOT_{snapshot_time}`. - **Exported data**: choose the databases and tables you want to export. - - **Data format**: choose one of the **SQL File** and **CSV**. - - **Compression**: choose one of the **Gzip**, **Snappy**, **Zstd**, and **None**. + - **Data format**: choose **SQL File** or **CSV**. + - **Compression**: choose **Gzip**, **Snappy**, **Zstd**, or **None**. -3. Click **Export**. +4. Click **Export**. -4. After the export task is successful, you can download the exported data to your local file with TiDB Cloud CLI. +5. After the export task is successful, you can download the exported data to your local file with TiDB Cloud CLI.
-1. Create an export task, cli will export the data to local file by default: +1. Create an export task. TiDB Cloud CLI will export the data to local file by default: - ```shell - ticloud serverless export create -c --filter "database.table" - ``` + ```shell + ticloud serverless export create -c --filter "database.table" + ``` - You will get an export ID from the output. + You will get an export ID from the output. 2. After the export task is successful, download the exported data to your local file: - ```shell - ticloud serverless export download -c -e - ``` + ```shell + ticloud serverless export download -c -e + ```
@@ -172,34 +167,28 @@ You can compress the exported parquet data using the following algorithms:
-1. Open the **Import** page for your target cluster. - - 1. Log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. +1. Log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. > **Tip:** > > If you have multiple projects, you can click in the lower-left corner and switch to another project. - 2. Click the name of your target cluster to go to its overview page, and then click **Import** in the left navigation pane. - -2. Configure the export information. On the **Import** page: - - - Click **Export Data to** in the upper-right corner, then choose **Amazon S3** from the drop-down list. +2. Click the name of your target cluster to go to its overview page, and then click **Import & Export** in the left navigation pane. - Fill in the following parameters: +3. Configure the export information. On the **Import & Export** page, click **Export Data to** in the upper-right corner, then choose **Amazon S3** from the drop-down list. Fill in the following parameters: - - **Task Name**: enter a name for the export task, default is `SNAPSHOT_{snapshot_time}`. + - **Task Name**: enter a name for the export task. The default value is `SNAPSHOT_{snapshot_time}`. - **Exported data**: choose the databases and tables you want to export. - - **Data format**: choose one of the **SQL File** and **CSV**. - - **Compression**: choose one of the **Gzip**, **Snappy**, **Zstd**, and **None**. + - **Data format**: choose **SQL File** or **CSV**. + - **Compression**: choose **Gzip**, **Snappy**, **Zstd**, or **None**. - **File URI**: enter the URI of the Amazon S3 with the `s3:///` format. - **Bucket Access** - - **AWS Role Arn**: enter the ARN of the role that has the permission to access the bucket. - - **AWS Access Key ID**: enter the access key ID and access key secret that has the permission to access the bucket. + - **AWS Role ARN**: enter the role ARN that has the permission to access the bucket. + - **AWS Access Key ID**: enter the access key ID and access key secret that have the permission to access the bucket. -3. Click **Export**. +4. Click **Export**. -4. After the export task is successful, you can download the exported data to your local file with TiDB Cloud CLI. +5. After the export task is successful, you can download the exported data to your local file with TiDB Cloud CLI.
@@ -209,16 +198,16 @@ You can compress the exported parquet data using the following algorithms: ticloud serverless export create -c --s3.uri --s3.access-key-id --s3.secret-access-key --filter "database.table" ``` -- s3.uri: The Amazon S3 URI with the `s3:///` format. -- s3.access-key-id: The access key ID of the user who has the permission to access the bucket. -- s3.secret-access-key: The access key secret of the user who has the permission to access the bucket. +- s3.uri: the Amazon S3 URI with the `s3:///` format. +- s3.access-key-id: the access key ID of the user who has the permission to access the bucket. +- s3.secret-access-key: the access key secret of the user who has the permission to access the bucket. ```shell ticloud serverless export create -c --s3.uri --s3.role-arn --filter "database.table" ``` -- s3.uri: The URI of the Amazon S3 bucket with the `s3:///` format. -- s3.role-arn: The ARN of the role that has the permission to access the bucket. +- s3.uri: the URI of the Amazon S3 bucket with the `s3:///` format. +- s3.role-arn: the ARN of the role that has the permission to access the bucket.
@@ -231,8 +220,8 @@ You can only export data to Google Cloud Storage using the TiDB Cloud CLI now. ticloud serverless export create -c --gcs.uri --gcs.service-account-key --filter "database.table" ``` -- gcs.uri: The URI of the Google Cloud Storage bucket with the `gs:///` format. -- gcs.service-account-key: The base64 encoded service account key. +- gcs.uri: the URI of the Google Cloud Storage bucket with the `gs:///` format. +- gcs.service-account-key: the base64 encoded service account key. ### Export data to Azure Blob Storage @@ -242,29 +231,27 @@ You can only export data to Azure Blob Storage using the TiDB Cloud CLI now. ticloud serverless export create -c --azblob.uri --azblob.sas-token --filter "database.table" ``` -- azblob.uri: The URI of the Azure Blob Storage with the `azure://.blob.core.windows.net//` format. -- azblob.sas-token: The account SAS token of the Azure Blob Storage. +- azblob.uri: the URI of the Azure Blob Storage with the `azure://.blob.core.windows.net//` format. +- azblob.sas-token: the account SAS token of the Azure Blob Storage. ### Cancel an export task
-1. Open the **Import** page for your target cluster. +1. Open the **Import & Export** page for your target cluster, log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. - 1. Log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. + > **Tip:** + > + > If you have multiple projects, you can click in the lower-left corner and switch to another project. - > **Tip:** - > - > If you have multiple projects, you can click in the lower-left corner and switch to another project. +2. Click the name of your target cluster to go to its overview page, and then click **Import & Export** in the left navigation pane. - 2. Click the name of your target cluster to go to its overview page, and then click **Import** in the left navigation pane. +3. On the **Import & Export** page, click **Export** to view the export task list. -2. Cancel the export task. On the **Import** page: +4. Choose the export task you want to cancel, and then click **Action** button. - - Click **Export** to view the export task list. - - Choose the export task you want to cancel, and then click **Action** button. - - Choose **Cancel** in the drop-down list, note that you can only cancel the export task that is in the **Running** status. +5. Choose **Cancel** in the drop-down list. Note that you can only cancel the export task that is in the **Running** status.
diff --git a/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-external-storage.md b/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-external-storage.md index 8439161f..6c96c123 100644 --- a/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-external-storage.md +++ b/markdown-pages/en/tidbcloud/master/tidb-cloud/serverless-external-storage.md @@ -1,15 +1,17 @@ --- -title: Configure TiDB Cloud Serverless external storage access +title: Configure TiDB Serverless External Storage Access summary: Learn how to configure Amazon Simple Storage Service (Amazon S3) access, Google Cloud Storage (GCS) access and Azure Blob Storage access. --- -# Configure TiDB Cloud Serverless external storage access +# Configure External Storage Access for TiDB Serverless -If you want import data from or export data to external storage in TiDB Cloud Serverless, you need to configure cross-account access. This document describes how to configure access to external storage, such as Amazon Simple Storage Service (Amazon S3), Google Cloud Storage (GCS) and Azure Blob Storage for TiDB Cloud Serverless. +If you want import data from or export data to external storage in TiDB Serverless, you need to configure cross-account access. This document describes how to configure access to an external storage, including Amazon Simple Storage Service (Amazon S3), Google Cloud Storage (GCS) and Azure Blob Storage for TiDB Serverless. + +If you need to configure these external storages for TiDB Dedicated, see [Configure Amazon S3 Access and GCS Access for TiDB Dedicated](/tidb-cloud/config-s3-and-gcs-access.md). ## Configure Amazon S3 access -To allow TiDB Cloud Serverless to access your Amazon S3 bucket, you need to configure the bucket access for TiDB Cloud Serverless. You can use either of the following methods to configure the bucket access: +To allow TiDB Serverless to access your Amazon S3 bucket, you need to configure the bucket access for TiDB Serverless. You can use either of the following methods to configure the bucket access: - Use an AWS access key: use the access key of an IAM user to access your Amazon S3 bucket. - Use a Role ARN: use a Role ARN to access your Amazon S3 bucket. @@ -17,7 +19,139 @@ To allow TiDB Cloud Serverless to access your Amazon S3 bucket, you need to conf
+It is recommended that you use AWS CloudFormation to create a role ARN. + +Take the following steps to create one: + +1. Open the **Import & Export** page for your target cluster. + + 1. Log in to the [TiDB Cloud console](https://tidbcloud.com/) and navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page of your project. + + 2. Click the name of your target cluster to go to its overview page, and then click **Import & Export** in the left navigation pane. + +2. Open the `Add New ARN` pop-up window. + + 1. Click **Import from S3** or **Export to Amazon S3** according to your needs. + + 2. Fill in the `Folder URI` or `File URI` according to the instructions. + + 3. Choose **AWS Role ARN** and click **Click here to create new one with AWS CloudFormation** to open the `Add New ARN` pop-up window. + +3. Create a role ARN with AWS CloudFormation Template. + + 1. Click **AWS Console with CloudFormation Template** in the `Add New ARN` pop-up window. + + 2. Log in to the AWS and you will be redirected to the AWS CloudFormation Template page. + + 3. Fill in the `Role Name`. + + 4. Acknowledge to create a new role and click **Create stack** to create the role ARN. + + 5. After the CloudFormation stack is executed, you can find the Role ARN value in the `outputs` tab. + + ![img.png](/media/tidb-cloud/serverless-external-storage/serverless-role-arn.png) + +
+ +
+ +If you have any trouble creating a role ARN with AWS CloudFormation, you can create one manually. + +Take the following steps to create one: + +1. In the `Add New ARN` pop-up window described in the previous section, click **Having trouble? Create Role ARN manually. You will get the `TiDB Cloud Account ID` and `TiDB Cloud External ID`. + +2. In the AWS Management Console, create a managed policy for your Amazon S3 bucket. + + 1. Sign in to the AWS Management Console and open the Amazon S3 console at [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/). + 2. In the **Buckets** list, choose the name of your bucket with the source data, and then click **Copy ARN** to get your S3 bucket ARN (for example, `arn:aws:s3:::tidb-cloud-source-data`). Take a note of the bucket ARN for later use. + + ![Copy bucket ARN](/media/tidb-cloud/copy-bucket-arn.png) + + 3. Open the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), click **Policies** in the navigation pane on the left, and then click **Create Policy**. + + ![Create a policy](/media/tidb-cloud/aws-create-policy.png) + + 4. On the **Create policy** page, click the **JSON** tab. + 5. Copy the following access policy template and paste it to the policy text field. + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": [ + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutObject" + ], + "Resource": "//*" + }, + { + "Sid": "VisualEditor1", + "Effect": "Allow", + "Action": [ + "s3:ListBucket", + "s3:GetBucketLocation" + ], + "Resource": "" + } + ] + } + ``` + + In the policy text field, update the following configurations to your own values. + + - `"Resource": "//*"` + + For example, if your source data is stored in the root directory of the `tidb-cloud-source-data` bucket, use `"Resource": "arn:aws:s3:::tidb-cloud-source-data/*"`. If your source data is stored in the `mydata` directory of the bucket, use `"Resource": "arn:aws:s3:::tidb-cloud-source-data/mydata/*"`. Make sure that `/*` is added to the end of the directory so TiDB Cloud can access all files in this directory. + + - `"Resource": ""` + + For example, `"Resource": "arn:aws:s3:::tidb-cloud-source-data"`. + + - If you have enabled AWS Key Management Service key (SSE-KMS) with customer-managed key encryption, make sure the following configuration is included in the policy. `"arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f"` is a sample KMS key of the bucket. + + ``` + { + "Sid": "AllowKMSkey", + "Effect": "Allow", + "Action": [ + "kms:Decrypt" + ], + "Resource": "arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f" + } + ``` + + If the objects in your bucket have been copied from another encrypted bucket, the KMS key value needs to include the keys of both buckets. For example, `"Resource": ["arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f","arn:aws:kms:ap-northeast-1:495580073302:key/0d7926a7-6ecc-4bf7-a9c1-a38f0faec0cd"]`. + + 6. Click **Next: Tags**, add a tag of the policy (optional), and then click **Next:Review**. + + 7. Set a policy name, and then click **Create policy**. + +3. In the AWS Management Console, create an access role for TiDB Cloud and get the role ARN. + + 1. In the IAM console at [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), click **Roles** in the navigation pane on the left, and then click **Create role**. + + ![Create a role](/media/tidb-cloud/aws-create-role.png) + + 2. To create a role, fill in the following information: + + - Under **Trusted entity type**, select **AWS account**. + - Under **An AWS account**, select **Another AWS account**, and then paste the TiDB Cloud account ID to the **Account ID** field. + - Under **Options**, click **Require external ID (Best practice when a third party will assume this role)**, and then paste the TiDB Cloud External ID to the **External ID** field. If the role is created without "Require external ID", once the configuration is done for one TiDB cluster in a project, all TiDB clusters in that project can use the same Role ARN to access your Amazon S3 bucket. If the role is created with the account ID and external ID, only the corresponding TiDB cluster can access the bucket. + + 3. Click **Next** to open the policy list, choose the policy you just created, and then click **Next**. + 4. Under **Role details**, set a name for the role, and then click **Create role** in the lower-right corner. After the role is created, the list of roles is displayed. + 5. In the list of roles, click the name of the role that you just created to go to its summary page, and then you can get the role ARN. + + ![Copy AWS role ARN](/media/tidb-cloud/aws-role-arn.png) + +
+
It is recommended that you use an IAM user (instead of the AWS account root user) to create an access key. @@ -39,15 +173,15 @@ Take the following steps to configure an access key: ## Configure GCS access -To allow TiDB Cloud Serverless to access your GCS bucket, you need to configure the GCS access for the bucket. You can use service account key to configure the bucket access: +To allow TiDB Serverless to access your GCS bucket, you need to configure the GCS access for the bucket. You can use service account key to configure the bucket access: Take the following steps to configure a service account key: 1. Create a service account with needed permission in the Google Cloud [service account page](https://console.cloud.google.com/iam-admin/serviceaccounts). For more information, see [Creating a service account](https://cloud.google.com/iam/docs/creating-managing-service-accounts). 1. Enter a service account name. - 2. Optional: Enter a description of the service account. + 2. Enter a description of the service account (Optional). 3. Click **CREATE AND CONTINUE** to create the service account and continue the next step. - 4. In the `Grant this service account access to project`, choose the [IAM roles](https://cloud.google.com/iam/docs/understanding-roles) with needed permission. For example, TiDB Cloud Serverless export needs a role with `storage.objects.create` permission. + 4. In the `Grant this service account access to project`, choose the [IAM roles](https://cloud.google.com/iam/docs/understanding-roles) with needed permission. For example, TiDB Serverless export needs a role with `storage.objects.create` permission. 5. Click **Continue** to the next step. 6. Optional: In the `Grant users access to this service account`, choose members that need to [attach the service account to other resources](https://cloud.google.com/iam/docs/attach-service-accounts). 7. Click **Done** to finish creating the service account. @@ -62,27 +196,28 @@ Take the following steps to configure a service account key: 4. Open the downloaded JSON file and encode the content with base64. For example, you can use the following command to encode the content in the macOS terminal: -```bash -base64 -i gcp-xxx.json -``` + ```bash + base64 -i gcp-xxx.json + ``` ## Configure Azure Blob access -To allow TiDB Cloud Serverless to access your Azure Blob container, you need to configure the Azure Blob access for the container. You can use service SAS token to configure the container access: +To allow TiDB Serverless to access your Azure Blob container, you need to configure the Azure Blob access for the container. You can use service SAS token to configure the container access: Take the following steps to configure a service SAS token: -1. Click your storage account where the container belong to in the [Azure storage account](https://portal.azure.com/#browse/Microsoft.Storage%2FStorageAccounts) page. +1. Click your storage account where the container belongs to in the [Azure storage account](https://portal.azure.com/#browse/Microsoft.Storage%2FStorageAccounts) page. + 2. In your `storage account` page, click the **Security+network** and then click the **Shared access signature**. ![img.png](/media/tidb-cloud/serverless-external-storage/azure-sas.png) -3. In the `Shared access signature` page, create a service SAS token with needed permission. For more information, see [Create a service SAS token](https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview). - 1. Choose the `Blob` service under the `Allowed services` section. - 2. Choose the `Container` and `Object` under the `Allowed Resource types` section. - 3. Choose the permission under the `Allowed permissions` section as you needed. For example: TiDB Cloud Serverless exports needs `Read` and `Write` permission. - 4. Adjust the `Start and expiry date/time` as you needed. - 5. You can keep other settings as default. +3. In the `Shared access signature` page, create a service SAS token with needed permissions as follows. For more information, see [Create a service SAS token](https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview). + 1. Choose the `Blob` service under the `Allowed services` section. + 2. Choose the `Container` and `Object` under the `Allowed Resource types` section. + 3. Choose the permission under the `Allowed permissions` section as you needed. For example: TiDB Serverless exports needs `Read` and `Write` permission. + 4. Adjust the `Start and expiry date/time` as you needed. + 5. You can keep other settings as default. ![img.png](/media/tidb-cloud/serverless-external-storage/azure-create-sas.png)