外部ストレージへのアクセスを構成する
TiDB Cloud StarterまたはEssentialインスタンスで外部storageからデータをインポートしたり、外部ストレージにデータをエクスポートしたりするには、アカウント間アクセスを設定する必要があります。このドキュメントでは、 TiDB Cloud StarterおよびTiDB Cloud Essentialインスタンスで外部storageへのアクセスを設定する方法について説明します。
TiDB Cloud Dedicatedクラスター用にこれらの外部ストレージを構成する必要がある場合は、 TiDB Cloud Dedicatedの外部ストレージアクセスを構成する参照してください。
Amazon S3へのアクセスを設定する
TiDB Cloud StarterまたはEssential インスタンスが Amazon S3 バケットにアクセスできるようにするには、次のいずれかの方法を使用してインスタンスのバケット アクセスを設定します。- ロールARNを使用する: ロール ARN を使用して Amazon S3 バケットにアクセスします。
- AWSアクセスキーを使用する: IAMユーザーのアクセスキーを使用して、Amazon S3 バケットにアクセスします。
ロールARNを使用してAmazon S3へのアクセスを設定する
ロールARNの作成にはAWS CloudFormation使用することをお勧めします。作成するには、以下の手順に従ってください。
注記:
Amazon S3 へのロール ARN アクセスは、ターゲットTiDB Cloud StarterまたはEssential インスタンスのクラウドプロバイダーが AWS である場合にのみサポートされます。別のクラウドプロバイダーを使用する場合は、代わりに AWS アクセスキーを使用してください。詳細については、 AWSアクセスキーを使用してAmazon S3へのアクセスを設定する参照してください。
ターゲットのTiDB Cloud StarterまたはEssential インスタンスのインポートページを開きます。
- TiDB Cloudコンソールにログインし、私のTiDBページに移動します。
- ターゲットのTiDB Cloud StarterまたはEssential インスタンスの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[データ] > [インポート]をクリックします。
「新しいARNの追加」ダイアログを開きます。
Amazon S3からデータをインポートする場合は、次のようにして「新しいARNの追加」ダイアログを開きます。
- 「S3からインポート」をクリックします。
- ファイルURI欄に入力してください。
- AWS ロール ARNを選択し、[**ここをクリックして AWS CloudFormation を使用して新しいロールを作成します] をクリックします**。
データをAmazon S3にエクスポートする場合は、次のように「新しいARNの追加」ダイアログを開きます。
- 「データのエクスポート先...」 > 「Amazon S3」をクリックします。TiDB Cloud StarterまたはEssentialインスタンスでこれまでデータのインポートまたはエクスポートが行われていない場合は、ページ下部の「ここをクリックしてデータをエクスポート...」 > 「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 StarterまたはEssential 。
- TiDB Cloud StarterまたはEssential インスタンスからデータをエクスポートするには、 **s3:PutObject**および**s3:ListBucket**権限が必要です。
- TiDB Cloud StarterまたはEssential インスタンスにデータをインポートするには、 **s3:GetObject** 、 **s3:GetObjectVersion** 、および**s3:ListBucket**権限が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject" ], "Resource": "<Your S3 bucket ARN>/<Your data directory>/*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "<Your S3 bucket ARN>" } ] }ポリシーテキストフィールドで、以下の設定を独自の値に置き換えてください。
"Resource": "<Your S3 bucket ARN>/<Your data directory>/*"、ここで<Your data directory>はエクスポートされたデータのターゲットディレクトリ、またはインポートされたデータのソースディレクトリです。例:- インポートまたはエクスポートするデータが
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) を顧客管理キー暗号化で有効にしている場合は、ポリシーに次の設定が含まれていることを確認してください。
"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を必須とせずに作成された場合、プロジェクト内のいずれかのTiDB Cloud StarterまたはEssentialインスタンスの設定が完了すると、そのプロジェクト内のすべてのTiDB Cloud StarterおよびEssentialインスタンスは同じロールARNを使用してAmazon S3バケットにアクセスできます。ロールがアカウントIDと外部IDの両方を使用して作成された場合、対応するTiDB Cloud StarterまたはEssentialインスタンスのみがバケットにアクセスできます。
「次へ」をクリックしてポリシー一覧を開き、先ほど作成したポリシーを選択してから「次へ」をクリックします。
「役割の詳細」で役割の名前を設定し、右下隅の「役割の作成」をクリックします。役割が作成されると、役割の一覧が表示されます。
役割の一覧から、先ほど作成した役割の名前をクリックして概要ページに移動すると、役割のARNを取得できます。
AWSアクセスキーを使用してAmazon S3へのアクセスを設定する
アクセスキーを作成する際には、AWSアカウントのルートユーザーではなく、 IAMユーザーを使用することをお勧めします。
アクセスキーを設定するには、以下の手順に従ってください。
IAMユーザーを作成します。詳細については、 IAMユーザーの作成参照してください。
AWSアカウントIDまたはアカウントエイリアス、およびIAMユーザー名とパスワードを使用してIAMコンソールにサインインしてください。
アクセスキーを作成します。詳細については、 IAMユーザーのアクセスキーを作成する参照してください。
注記:
TiDB Cloudはアクセス キーを保存しません。インポートまたはエクスポートが完了したらアクセスキーを削除することをお勧めします。
GCSへのアクセスを設定する
TiDB Cloud StarterまたはEssentialインスタンスがGCSバケットにアクセスできるようにするには、バケットのGCSアクセスを設定する必要があります。サービスアカウントキーを使用してバケットアクセスを設定できます。
サービスアカウントキーを設定するには、以下の手順に従ってください。
Google Cloud サービスサービスアカウントページページで、 [サービス アカウントの作成]をクリックしてサービス アカウントを作成します。詳細については、 サービスアカウントの作成参照してください。
サービスアカウント名を入力してください。
任意:サービスアカウントの説明を入力してください。
サービスアカウントを作成するには、 「作成して続行」をクリックしてください。
Grant this service account access to projectで、必要な権限を持つIAMロールを選択します。- TiDB Cloud StarterまたはEssentialインスタンスからデータをエクスポートするには
storage.objects.create権限を持つロールが必要です。 - TiDB Cloud StarterまたはEssentialインスタンスにデータをインポートするには
storage.buckets.get、storage.objects.get、およびstorage.objects.list権限を持つロールが必要です。
- TiDB Cloud StarterまたはEssentialインスタンスからデータをエクスポートするには
次のステップに進むには、 「続行」をクリックしてください。
オプション:
Grant users access to this service accountで、 サービスアカウントを他のリソースにアタッチする必要があるメンバーを選択します。「完了」をクリックして、サービスアカウントの作成を完了してください。
サービスアカウントをクリックし、
KEYSページで[キーの追加]をクリックして、サービスアカウントキーを作成します。デフォルトのキータイプ
JSONを選択し、 [作成]をクリックして Google Cloud 認証情報ファイルをダウンロードします。このファイルには、TiDB Cloud StarterまたはEssentialインスタンスの GCS アクセスを設定する際に使用する必要のあるサービス アカウント キーが含まれています。
Azure Blob Storageへのアクセスを構成する
TiDB CloudがAzure Blobコンテナにアクセスできるようにするには、コンテナ用のサービスSASトークンを作成する必要があります。
SAS トークンは、 Azure ARM テンプレート(推奨) または手動構成を使用して作成できます。
Azure ARMテンプレートを使用してSASトークンを作成するには、次の手順を実行します。
対象のTiDB Cloudリソースのインポートまたはエクスポートページを開きます。
TiDB Cloudコンソールにログインし、私のTiDBページに移動します。
対象のTiDB Cloudリソースの名前をクリックして概要ページに移動し、左側のナビゲーションペインで「データ」 > 「インポート」または「データ」 > 「エクスポート」をクリックします。
「ARMテンプレート展開による新しいSASトークンの生成」ダイアログを開きます。
Azure Blob Storage からデータをインポートする場合:
- 「Azure Blob Storage からインポート」をクリックします。
- フォルダURI欄に入力してください。
- SASトークンフィールドで、 [Azure ARMテンプレートを使用して新しいトークンを作成するには、ここをクリックしてください]をクリックします。
データをAzure Blob Storageにエクスポートする場合:
- 「データのエクスポート先...」 > 「Azure Blob Storage」をクリックします。TiDB Cloud StarterまたはEssentialインスタンスでこれまでデータのインポートまたはエクスポートが行われていない場合は、ページ下部の「データのエクスポート先...」 > 「Azure Blob Storage」をクリックしてください。
- Azure Blob Storage 設定エリアまでスクロールダウンし、SAS トークンフィールドの下にある[ここをクリックして、Azure ARM テンプレートを使用して新しいものを作成する] をクリックします。
Azure ARMテンプレートを使用してSASトークンを作成します。
「ARM テンプレート展開による新しい SAS トークンの生成」ダイアログで、[クリック**] をクリックして、事前構成済みの ARM テンプレートを含む Azure ポータルを開きます**。
Azureにログインすると、Azureカスタムデプロイページにリダイレクトされます。
カスタムデプロイメントページで、リソースグループとストレージアカウント名を入力してください。コンテナが配置されているstorageアカウントの概要ページから、すべての情報を取得できます。
デプロイメントを確認するには、 「レビュー + 作成」または「次へ」をクリックします。デプロイメントを開始するには、 「作成」をクリックします。
処理が完了すると、デプロイメント概要ページにリダイレクトされます。 「出力」セクションに移動して、SASトークンを取得してください。
Azure ARMテンプレートを使用してSASトークンを作成する際に問題が発生した場合は、以下の手順に従って手動で作成してください。
詳細はこちらをクリックしてください
Azureストレージアカウントページで、コンテナーが属するstorageアカウントをクリックします。
ストレージアカウントのページで、[**Security]+ [ネットワーク]をクリックし、 [共有アクセス署名]**をクリックします。
[共有アクセス署名]ページで、次のように必要なアクセス許可を持つサービス SAS トークンを作成します。詳細については、 サービスSASトークンを作成します参照してください。
「許可されたサービス」セクションで、 「Blob」サービスを選択します。
「許可されたリソースの種類」セクションで、 「コンテナ」と「オブジェクト」を選択します。
「許可された権限」セクションで、必要に応じて権限を選択してください。
- TiDB Cloud StarterまたはEssentialインスタンスからデータをエクスポートするには、読み取り権限と書き込み権限が必要です。
- TiDB Cloud StarterまたはEssentialインスタンスにデータをインポートするには、読み取り権限と一覧表示権限が必要です。
必要に応じて開始日時と終了日時を調整してください。
その他の設定については、デフォルト値をそのまま使用できます。
SASトークンを生成するには、 「SASと接続文字列の生成」をクリックしてください。
Alibaba Cloudオブジェクトストレージサービス(OSS)へのアクセスを設定する
TiDB CloudがAlibaba Cloud OSSバケットにアクセスできるようにするには、そのバケットのアクセスキーペアを作成する必要があります。
アクセスキーペアを設定するには、以下の手順に従ってください。
RAM ユーザーを作成し、AccessKey ペアを取得します。詳細については、 RAMユーザーを作成する参照してください。
アクセスモードのセクションで、 「永続的なアクセスキーを使用してアクセスする」を選択します。
必要な権限を持つカスタム ポリシーを作成します。詳細については、 カスタムポリシーを作成する参照してください。
「効果」セクションで「許可」を選択します。
「サービス」セクションで、 「オブジェクトストレージサービス」を選択します。
「アクション」セクションで、必要に応じて権限を選択してください。
TiDB Cloud StarterまたはEssential インスタンスにデータをインポートするには、 **oss:GetObject** 、 **oss:GetBucketInfo** 、および**oss:ListObjects**権限を付与します。TiDB Cloud StarterまたはEssential インスタンスからデータをエクスポートするには、 `oss:PutObject`および`oss:GetBucketInfo`権限を付与してください。リソースセクションで、バケットとバケット内のオブジェクトを選択します。
カスタム ポリシーを RAM ユーザーにアタッチします。詳細については、 RAMユーザーに権限を付与する参照してください。









