外部ストレージへのアクセスを構成する
TiDB Cloud Starter、 Essential 、またはPremiumインスタンスで外部ストレージからデータをインポートしたり、外部ストレージにデータをエクスポートしたりするには、アカウント間アクセスを設定する必要があります。このドキュメントでは、TiDB Cloud Starter、 TiDB Cloud Essential、およびTiDB Cloud Premiumインスタンスで外部ストレージへのアクセスを設定する方法について説明します。
TiDB Cloud Dedicatedクラスター用にこれらの外部ストレージを構成する必要がある場合は、 TiDB Cloud Dedicatedの外部ストレージアクセスを構成するを参照してください。
Amazon S3へのアクセスを設定する
TiDB Cloud Starter、 Essential、またはPremiumインスタンスがAmazon S3バケットにアクセスできるようにするには、以下のいずれかの方法を使用して、インスタンスのバケットアクセスを設定します。
- ロールARNを使用する: ロール ARN を使用して Amazon S3 バケットにアクセスします。
- AWSアクセスキーを使用する: IAMユーザーのアクセスキーを使用して、Amazon S3 バケットにアクセスします。
ロールARNを使用してAmazon S3へのアクセスを設定する
ロールARNの作成にはAWS CloudFormationを使用することをお勧めします。作成するには、以下の手順に従ってください。
対象のTiDB Cloud Starter、 Essential、またはPremiumインスタンスのインポートページを開きます。
- TiDB Cloudコンソールにログインし、My TiDBページに移動します。
- 対象のTiDB Cloud Starter、 Essential、または Premium インスタンスの名前をクリックして概要ページに移動し、左側のナビゲーション ペインで[データ] > [インポート]をクリックします。
Add New ARNダイアログを開きます。
Amazon S3からデータをインポートする場合は、次のようにしてAdd New ARNダイアログを開きます。
- Import from S3をクリックします。
- File URI欄に入力してください。
- AWS Role ARNを選択し、[**ここをクリックして AWS CloudFormation を使用して新しいロールを作成します] をクリックします**。
データをAmazon S3にエクスポートする場合は、次のようにAdd New ARNダイアログを開きます。
- Export data to... > Amazon S3をクリックします。TiDB Cloud StarterまたはEssentialインスタンスでこれまでデータのインポートまたはエクスポートが行われていない場合は、ページ下部のここをクリックしてデータをエクスポート... > Amazon S3をクリックしてください。
- Folder URI欄に入力してください。
- AWS Role ARNを選択し、[**ここをクリックして AWS CloudFormation を使用して新しいロールを作成します] をクリックします**。
AWS CloudFormationテンプレートを使用してロールARNを作成します。
Add New ARNダイアログで、 CloudFormation テンプレートを使用した AWS コンソールをクリックします。
AWS マネジメントコンソールコンソールにログインすると、AWS CloudFormation のQuick create stackページにリダイレクトされます。
Role Nameを入力してください。
新しいロールを作成することに同意し、 Create stackをクリックしてロールARNを作成します。
CloudFormationスタックの実行後、 [出力]タブをクリックすると、 [値]列にロールARNの値が表示されます。
AWS CloudFormationでロールARNを作成する際に問題が発生した場合は、以下の手順で手動で作成できます。
詳細はこちらをクリックしてください
前の手順で説明したAdd New ARNダイアログで、 問題が発生しましたか?ロール ARN を手動で作成しますをクリックします。TiDB Cloud Account IDとTiDB Cloud External IDが取得されます。
AWS マネジメントコンソールで、Amazon S3 バケット用のマネージドポリシーを作成します。
AWS マネジメントコンソールコンソールにサインインし、 Amazon S3コンソールを開きます。
バケット一覧から対象バケットの名前を選択し、 Copy ARNをクリックしてS3バケットのARNを取得します(例:
arn:aws:s3:::tidb-cloud-source-data)。後で使用するために、バケットのARNをメモしておいてください。IAMコンソールを開き、左側のナビゲーションペインでポリシーをクリックし、 Create Policyをクリックします。
Create policyページで、 JSONタブをクリックします。
ポリシーテキストフィールドで、必要に応じてポリシーを設定してください。以下は、 TiDB Cloud Starter、 Essential、またはPremiumインスタンスからデータをエクスポートしたり、これらのインスタンスにデータをインポートしたりする際に使用できる例です。
- TiDB Cloud Starter、 Essential、またはPremiumインスタンスからデータをエクスポートするには、s3:PutObjectおよびs3:ListBucketの権限が必要です。
- TiDB Cloud Starter、 Essential、またはPremiumインスタンスにデータをインポートするには、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"]のようになります。
次へをクリックしてください。
ポリシー名を設定し、ポリシーのタグを追加(任意)してから、 Create policyをクリックします。
AWS マネジメントコンソールで、 TiDB Cloudのアクセスロールを作成し、ロール ARN を取得します。
IAMコンソールで、左側のナビゲーション ペインの[ロール]をクリックし、 Create roleをクリックします。
役割を作成するには、以下の情報を入力してください。
- Trusted entity typeでAWS accountを選択します。
- AWSアカウントでAnother AWS accountを選択し、 TiDB CloudアカウントIDをAccount IDフィールドに貼り付けます。
- [オプション]で、 [外部 ID が必要 (サードパーティがこの役割を引き受ける場合のベスト プラクティス)]をクリックし、 TiDB Cloud外部 ID をExternal IDフィールドに貼り付けます。ロールが外部IDを必須とせずに作成された場合、プロジェクト内のいずれかのTiDB Cloud StarterまたはEssentialインスタンスの設定が完了すると、そのプロジェクト内のすべてのTiDB Cloud StarterおよびEssentialインスタンスは同じロールARNを使用してAmazon S3バケットにアクセスできます。ロールがアカウントIDと外部IDの両方を使用して作成された場合、対応するTiDB Cloud StarterまたはEssentialインスタンスのみがバケットにアクセスできます。
次へをクリックしてポリシー一覧を開き、先ほど作成したポリシーを選択してから次へをクリックします。
Role detailsで役割の名前を設定し、右下隅のCreate roleをクリックします。役割が作成されると、役割の一覧が表示されます。
役割の一覧から、先ほど作成した役割の名前をクリックして概要ページに移動すると、役割のARNを取得できます。
AWSアクセスキーを使用してAmazon S3へのアクセスを設定する
アクセスキーを作成する際には、AWSアカウントのルートユーザーではなく、 IAMユーザーを使用することをお勧めします。
アクセスキーを設定するには、以下の手順に従ってください。
IAMユーザーを作成します。詳細については、 IAMユーザーの作成を参照してください。
AWSアカウントIDまたはアカウントエイリアス、およびIAMユーザー名とパスワードを使用してIAMコンソールにサインインしてください。
アクセスキーを作成します。詳細については、 IAMユーザーのアクセスキーを作成するを参照してください。
GCSへのアクセスを設定する
TiDB Cloud StarterまたはEssentialインスタンスがGCSバケットにアクセスできるようにするには、バケットのGCSアクセスを設定する必要があります。サービスアカウントキーを使用してバケットアクセスを設定できます。
サービスアカウントキーを設定するには、以下の手順に従ってください。
Google Cloud サービスサービスアカウントページページで、 CREATE SERVICE ACCOUNTをクリックしてサービス アカウントを作成します。詳細については、 サービスアカウントの作成を参照してください。
サービスアカウント名を入力してください。
任意:サービスアカウントの説明を入力してください。
サービスアカウントを作成するには、 CREATE AND CONTINUEをクリックしてください。
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ページでADD KEYをクリックして、サービスアカウントキーを作成します。デフォルトのキータイプ
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コンソールにログインし、My TiDBページに移動します。
対象のTiDB Cloudリソースの名前をクリックして概要ページに移動し、左側のナビゲーションペインでデータ > インポートまたはデータ > エクスポートをクリックします。
ARMテンプレート展開による新しいSASトークンの生成ダイアログを開きます。
Azure Blob Storage からデータをインポートする場合:
- 「Azure Blob Storage からインポート」をクリックします。
- Folder URI欄に入力してください。
- SAS Tokenフィールドで、 [Azure ARMテンプレートを使用して新しいトークンを作成するには、ここをクリックしてください]をクリックします。
データをAzure Blob Storageにエクスポートする場合:
- Export data to... > Azure Blob Storageをクリックします。TiDB Cloud StarterまたはEssentialインスタンスでこれまでデータのインポートまたはエクスポートが行われていない場合は、ページ下部のデータのエクスポート先... > Azure Blob Storageをクリックしてください。
- Azure Blob Storage Settingsエリアまでスクロールダウンし、SAS トークンフィールドの下にある[ここをクリックして、Azure ARM テンプレートを使用して新しいものを作成する] をクリックします。
Azure ARMテンプレートを使用してSASトークンを作成します。
ARM テンプレート展開による新しい SAS トークンの生成ダイアログで、[クリック**] をクリックして、事前構成済みの ARM テンプレートを含む Azure ポータルを開きます**。
Azureにログインすると、AzureCustom deploymentページにリダイレクトされます。
Resource groupページで、リソースグループとストレージアカウント名を入力してください。コンテナが配置されているストレージアカウントの概要ページから、すべての情報を取得できます。
デプロイメントを確認するには、 Review + createまたは次へをクリックします。デプロイメントを開始するには、 作成をクリックします。
処理が完了すると、デプロイメント概要ページにリダイレクトされます。 出力セクションに移動して、SASトークンを取得してください。
Azure ARMテンプレートを使用してSASトークンを作成する際に問題が発生した場合は、以下の手順に従って手動で作成してください。
詳細はこちらをクリックしてください
Azureストレージアカウントページで、コンテナーが属するストレージアカウントをクリックします。
Storage accountページで、[セキュリティ + ネットワーク]をクリックし、 Shared access signatureをクリックします。
Shared access signatureページで、次のように必要なアクセス許可を持つサービス SAS トークンを作成します。詳細については、 サービスSASトークンを作成しますを参照してください。
Allowed servicesセクションで、 Blobサービスを選択します。
Allowed Resource typesセクションで、 コンテナとオブジェクトを選択します。
Allowed permissionsセクションで、必要に応じて権限を選択してください。
- TiDB Cloud StarterまたはEssentialインスタンスからデータをエクスポートするには、読み取り権限と書き込み権限が必要です。
- TiDB Cloud StarterまたはEssentialインスタンスにデータをインポートするには、読み取り権限と一覧表示権限が必要です。
必要に応じてStart and expiry date/timeを調整してください。
その他の設定については、デフォルト値をそのまま使用できます。
SASトークンを生成するには、 「SASと接続文字列の生成」をクリックしてください。
Alibaba Cloudオブジェクトストレージサービス(OSS)へのアクセスを設定する
TiDB CloudがAlibaba Cloud OSSバケットにアクセスできるようにするには、そのバケットのアクセスキーペアを作成する必要があります。
アクセスキーペアを設定するには、以下の手順に従ってください。
RAM ユーザーを作成し、AccessKey ペアを取得します。詳細については、 RAMユーザーを作成するを参照してください。
Access Modeセクションで、 「永続的なアクセスキーを使用してアクセスする」を選択します。
必要な権限を持つカスタム ポリシーを作成します。詳細については、 カスタムポリシーを作成するを参照してください。
効果セクションで許可を選択します。
サービスセクションで、 Object Storage Serviceを選択します。
アクションセクションで、必要に応じて権限を選択してください。
TiDB Cloud Starter、 Essential、またはPremiumインスタンスにデータをインポートするには、 oss:GetObject 、 oss:GetBucketInfo 、およびoss:ListObjectsの権限を付与してください。
TiDB Cloud Starter、 Essential、またはPremiumインスタンスからデータをエクスポートするには、
oss:PutObjectとoss:GetBucketInfoの権限を付与してください。リソースセクションで、バケットとバケット内のオブジェクトを選択します。
カスタム ポリシーを RAM ユーザーにアタッチします。詳細については、 RAMユーザーに権限を付与するを参照してください。









