TiDB Cloud Serverless の外部ストレージ アクセスを構成する
TiDB Cloud Serverless クラスターの外部ストレージからデータをインポートしたり、外部storageにデータをエクスポートしたりする場合は、クロスアカウント アクセスを構成する必要があります。このドキュメントでは、 TiDB Cloud Serverless クラスターの外部storageへのアクセスを構成する方法について説明します。
TiDB Cloud Dedicated クラスター用にこれらの外部ストレージを構成する必要がある場合は、 TiDB Cloud Dedicatedの外部ストレージアクセスを構成する参照してください。
Amazon S3 アクセスを構成する
TiDB Cloud Serverless クラスターが Amazon S3 バケットにアクセスできるようにするには、クラスターのバケット アクセスを設定する必要があります。バケット アクセスを設定するには、次のいずれかの方法を使用できます。
- ロール ARN を使用する: ロール ARN を使用して Amazon S3 バケットにアクセスします。
- AWS アクセスキーを使用する: IAMユーザーのアクセスキーを使用して Amazon S3 バケットにアクセスします。
- Role ARN
- Access Key
ロール ARN を作成するには、 AWS クラウドフォーメーション使用することをお勧めします。作成するには、次の手順を実行します。
ターゲット クラスターのインポートページを開きます。
TiDB Cloudコンソールにログインし、プロジェクトのクラスターページに移動します。
ターゲット クラスターの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[インポート]をクリックします。
新しい ARN の追加ダイアログを開きます。
Amazon S3 からデータをインポートする場合は、次のようにして「新しい ARN の追加」ダイアログを開きます。
- S3 からインポートをクリックします。
- ファイル URIフィールドに入力します。
- AWS ロール ARN を選択し、 [ここをクリックして AWS CloudFormation で新規作成] をクリックします。
データを Amazon S3 にエクスポートする場合は、次のようにして「新しい ARN の追加」ダイアログを開きます。
- [データをエクスポート...] > [Amazon S3]をクリックします。クラスターでこれまでにデータをインポートまたはエクスポートしたことがない場合は、ページの下部にある[データをエクスポートするには、ここをクリックします...] > [Amazon S3] をクリックします。
- フォルダー URIフィールドに入力します。
- AWS ロール ARN を選択し、 [ここをクリックして AWS CloudFormation で新規作成] をクリックします。
AWS CloudFormation テンプレートを使用してロール ARN を作成します。
[新しい ARN の追加]ダイアログで、 [CloudFormation テンプレートを使用した AWS コンソール]をクリックします。
AWS マネジメントコンソールにログインすると、AWS CloudFormation のクイック作成スタックページにリダイレクトされます。
ロール名を入力します。
新しいロールを作成することを確認し、 「スタックの作成」をクリックしてロール ARN を作成します。
CloudFormation スタックが実行された後、 [出力]タブをクリックし、 [値]列でロール ARN 値を見つけることができます。
AWS CloudFormation でロール ARN を作成する際に問題が発生した場合は、次の手順に従って手動で作成できます。
詳細はこちらをクリック
前の手順で説明した「新しい ARN の追加」ダイアログで、 「問題が発生した場合は、ロール ARN を手動で作成します」をクリックします。TiDB TiDB Cloudアカウント IDとTiDB Cloud外部 IDが取得されます。
AWS マネジメントコンソールで、Amazon S3 バケットの管理ポリシーを作成します。
AWS マネジメントコンソールにサインインしてAmazon S3 コンソール開きます。
[バケット]リストで、ソース データを含むバケットの名前を選択し、 [ARN のコピー]をクリックして S3 バケット ARN (例:
arn:aws:s3:::tidb-cloud-source-data
) を取得します。後で使用するために、バケット ARN をメモしておきます。IAMコンソールを開き、左側のナビゲーション ペインで[ポリシー]をクリックして、 [ポリシーの作成]をクリックします。
[ポリシーの作成]ページで、 [JSON]タブをクリックします。
必要に応じて、ポリシー テキスト フィールドでポリシーを構成します。以下は、TiDB Cloud Serverless クラスターからデータをエクスポートしたり、 TiDB Cloud Serverless クラスターにデータをインポートしたりするために使用できる例です。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject" ], "Resource": "<Your S3 bucket ARN>/<Directory of your source data>/*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "<Your S3 bucket ARN>" } ] }ポリシー テキスト フィールドで、次の構成を独自の値に置き換えます。
"Resource": "<Your S3 bucket ARN>/<Directory of the source data>/*"
。例えば、- ソース データが
tidb-cloud-source-data
バケットのルート ディレクトリに保存されている場合は、"Resource": "arn:aws:s3:::tidb-cloud-source-data/*"
使用します。 - ソース データがバケットの
mydata
ディレクトリに保存されている場合は、"Resource": "arn:aws:s3:::tidb-cloud-source-data/mydata/*"
使用します。
TiDB Cloud がこのディレクトリ内のすべてのファイルにアクセスできるように、ディレクトリの末尾に
/*
が追加されていることを確認してください。- ソース データが
"Resource": "<Your S3 bucket ARN>"
、たとえば"Resource": "arn:aws:s3:::tidb-cloud-source-data"
。カスタマー管理のキー暗号化で AWS Key Management Service キー (SSE-KMS) を有効にしている場合は、ポリシーに次の設定が含まれていることを確認してください。1
"arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f"
バケットのサンプル KMS キーです。{ "Sid": "AllowKMSkey", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:ap-northeast-1:105880447796:key/c3046e91-fdfc-4f3a-acff-00597dd3801f" }バケット内のオブジェクトが別の暗号化されたバケットからコピーされた場合、KMS キー値には両方のバケットのキーを含める必要があります。たとえば、
"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"]
です。
「次へ」をクリックします。
ポリシー名を設定し、ポリシーのタグ(オプション)を追加して、 「ポリシーの作成」をクリックします。
AWS マネジメントコンソールで、 TiDB Cloudのアクセスロールを作成し、ロール ARN を取得します。
IAMコンソールで、左側のナビゲーション ペインで[ロール]をクリックし、 [ロールの作成]をクリックします。
ロールを作成するには、次の情報を入力します。
- 信頼されたエンティティタイプで、 AWS アカウントを選択します。
- 「AWS アカウント」で「別の AWS アカウント」を選択し、 TiDB Cloudアカウント ID を「アカウント ID」フィールドに貼り付けます。
- オプションで、外部 ID が必要 (サードパーティがこのロールを引き受ける場合のベストプラクティス)をクリックし、 TiDB Cloud外部 ID を外部 IDフィールドに貼り付けます。外部 ID が必要 なしでロールを作成した場合、プロジェクト内の 1 つの TiDB クラスターの設定が完了すると、そのプロジェクト内のすべての TiDB クラスターが同じロール ARN を使用して Amazon S3 バケットにアクセスできます。アカウント ID と外部 ID を使用してロールを作成した場合、対応する TiDB クラスターのみがバケットにアクセスできます。
[次へ]をクリックしてポリシー リストを開き、作成したポリシーを選択して、 [次へ]をクリックします。
ロールの詳細で、ロールの名前を設定し、右下隅のロールの作成をクリックします。ロールが作成されると、ロールのリストが表示されます。
ロールのリストで、作成したロールの名前をクリックして概要ページに移動し、ロール ARN を取得できます。
アクセスキーを作成するには、AWS アカウントのルートユーザーではなく、 IAMユーザーを使用することをお勧めします。
アクセス キーを構成するには、次の手順を実行します。
IAMユーザーを作成します。詳細については、 IAMユーザーの作成参照してください。
AWS アカウント ID またはアカウントエイリアスと、 IAMユーザー名とパスワードを使用してIAMコンソールにサインインします。
アクセスキーを作成します。詳細については、 IAMユーザーのアクセスキーを作成する参照してください。
注記:
TiDB Cloud はアクセス キーを保存しません。インポートまたはエクスポートが完了したら、 アクセスキーを削除する実行することをお勧めします。
GCS アクセスを構成する
TiDB Serverless クラスターが GCS バケットにアクセスできるようにするには、バケットの GCS アクセスを構成する必要があります。サービス アカウント キーを使用してバケット アクセスを構成できます。
サービス アカウント キーを構成するには、次の手順を実行します。
Google Cloud サービスアカウントページで、 [サービス アカウントの作成]をクリックしてサービス アカウントを作成します。詳細については、 サービスアカウントの作成参照してください。
- サービス アカウント名を入力します。
- オプション: サービス アカウントの説明を入力します。
- サービス アカウントを作成するには、[作成して続行]をクリックします。
Grant this service account access to project
で、必要な権限を持つIAMロール選択します。たとえば、 TiDB Cloud Serverless クラスターにデータをエクスポートするには、権限storage.objects.create
を持つロールが必要です。- 「続行」をクリックして次のステップに進みます。
- オプション:
Grant users access to this service account
で、 サービスアカウントを他のリソースに接続するが必要なメンバーを選択します。 - [完了]をクリックして、サービス アカウントの作成を完了します。
サービス アカウントをクリックし、
KEYS
ページで[キーの追加]をクリックしてサービス アカウント キーを作成します。デフォルトのキー タイプ
JSON
を選択し、 [作成]ボタンをクリックしてサービス アカウント キーをダウンロードします。
Azure Blob Storage アクセスを構成する
TiDB Serverless が Azure Blob コンテナーにアクセスできるようにするには、コンテナーの Azure Blob アクセスを構成する必要があります。コンテナー アクセスを構成するには、サービス SAS トークンを使用できます。
Azure ストレージ アカウントページで、コンテナーが属するstorageアカウントをクリックします。
ストレージ アカウントページで、[**Security+ ネットワーク]をクリックし、 [共有アクセス署名]**をクリックします。
Shared Access Signatureページで、次のように必要なアクセス許可を持つサービス SAS トークンを作成します。詳細については、 サービスSASトークンを作成する参照してください。
- [許可されたサービス]セクションで、 Blobサービスを選択します。
- 許可されたリソース タイプセクションで、コンテナーとオブジェクトを選択します。
- [許可された権限]セクションで、必要に応じて権限を選択します。たとえば、 TiDB Cloud Serverless クラスターにデータをエクスポートするには、読み取り権限と書き込み権限が必要です。
- 必要に応じて開始日時と有効期限を調整します。
- その他の設定はデフォルト値のままにしておきます。
SAS トークンを生成するには、 [SAS と接続文字列の生成]をクリックします。