📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

外部ストレージへのアクセスを構成する



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を使用してAmazon S3へのアクセスを設定する

ロールARNの作成にはAWS CloudFormationを使用することをお勧めします。作成するには、以下の手順に従ってください。

  1. 対象のTiDB Cloud Starter、 Essential、またはPremiumインスタンスのImportページを開きます。

    1. TiDB Cloudコンソールにログインし、My TiDBページに移動します。
    2. 対象のTiDB Cloud Starter、 Essential、または Premium インスタンスの名前をクリックして概要ページに移動し、左側のナビゲーションペインでData > Importをクリックします。
  2. Add New ARNダイアログを開きます。

    • Amazon S3からデータをインポートする場合は、次のようにしてAdd New ARNダイアログを開きます。

      1. Import from S3をクリックします。
      2. File URI欄に入力してください。
      3. AWS Role ARNを選択し、[**ここをクリックして AWS CloudFormation を使用して新しいロールを作成します] をクリックします**。
    • データをAmazon S3にエクスポートする場合は、次のようにAdd New ARNダイアログを開きます。

      1. Export data to... > Amazon S3をクリックします。TiDB Cloud StarterまたはEssentialインスタンスでこれまでデータのインポートまたはエクスポートが行われていない場合は、ページ下部のClick here to export data to... > Amazon S3をクリックしてください。
      2. Folder URI欄に入力してください。
      3. AWS Role ARNを選択し、[**ここをクリックして AWS CloudFormation を使用して新しいロールを作成します] をクリックします**。
  3. AWS CloudFormationテンプレートを使用してロールARNを作成します。

    1. Add New ARNダイアログで、 AWS Console with CloudFormation Templateをクリックします。

    2. AWS マネジメントコンソールコンソールにログインすると、AWS CloudFormation のQuick create stackページにリダイレクトされます。

    3. Role Nameを入力してください。

    4. 新しいロールを作成することに同意し、 Create stackをクリックしてロールARNを作成します。

    5. CloudFormationスタックの実行後、 Outputsタブをクリックすると、 Value列にロールARNの値が表示されます。

      Role ARN

AWS CloudFormationでロールARNを作成する際に問題が発生した場合は、以下の手順で手動で作成できます。

詳細はこちらをクリックしてください
  1. 前の手順で説明したAdd New ARNダイアログで、 Having trouble? Create Role ARN manuallyをクリックします。TiDB Cloud Account IDTiDB Cloud External IDが取得されます。

  2. AWS マネジメントコンソールで、Amazon S3 バケット用のマネージドポリシーを作成します。

    1. AWS マネジメントコンソールコンソールにサインインし、 Amazon S3コンソールを開きます。

    2. バケット一覧から対象バケットの名前を選択し、 Copy ARNをクリックしてS3バケットのARNを取得します(例: arn:aws:s3:::tidb-cloud-source-data )。後で使用するために、バケットのARNをメモしておいてください。

      Copy bucket ARN

    3. IAMコンソールを開き、左側のナビゲーションペインでPoliciesをクリックし、 Create Policyをクリックします。

      Create a policy

    4. Create policyページで、 JSONタブをクリックします。

    5. ポリシーテキストフィールドで、必要に応じてポリシーを設定してください。以下は、 TiDB Cloud Starter、 Essential、またはPremiumインスタンスからデータをエクスポートしたり、これらのインスタンスにデータをインポートしたりする際に使用できる例です。

      • TiDB Cloud Starter、 Essential、またはPremiumインスタンスからデータをエクスポートするには、s3:PutObjectおよびs3:ListBucketの権限が必要です。
      • TiDB Cloud Starter、 Essential、またはPremiumインスタンスにデータをインポートするには、s3:GetObjects3: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"]のようになります。

    6. Nextをクリックしてください。

    7. ポリシー名を設定し、ポリシーのタグを追加(任意)してから、 Create policyをクリックします。

  3. AWS マネジメントコンソールで、 TiDB Cloudのアクセスロールを作成し、ロール ARN を取得します。

    1. IAMコンソールで、左側のナビゲーションペインのRolesをクリックし、 Create roleをクリックします。

      Create a role

    2. 役割を作成するには、以下の情報を入力してください。

      • Trusted entity typeAWS accountを選択します。
      • An AWS accountAnother 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インスタンスのみがバケットにアクセスできます。
    3. Nextをクリックしてポリシー一覧を開き、先ほど作成したポリシーを選択してからNextをクリックします。

    4. Role detailsで役割の名前を設定し、右下隅のCreate roleをクリックします。役割が作成されると、役割の一覧が表示されます。

    5. 役割の一覧から、先ほど作成した役割の名前をクリックして概要ページに移動すると、役割のARNを取得できます。

      Copy AWS role ARN

AWSアクセスキーを使用してAmazon S3へのアクセスを設定する

アクセスキーを作成する際には、AWSアカウントのルートユーザーではなく、 IAMユーザーを使用することをお勧めします。

アクセスキーを設定するには、以下の手順に従ってください。

  1. IAMユーザーを作成します。詳細については、 IAMユーザーの作成を参照してください。

  2. AWSアカウントIDまたはアカウントエイリアス、およびIAMユーザー名とパスワードを使用してIAMコンソールにサインインしてください。

  3. アクセスキーを作成します。詳細については、 IAMユーザーのアクセスキーを作成するを参照してください。

GCSへのアクセスを設定する

TiDB Cloud StarterまたはEssentialインスタンスがGCSバケットにアクセスできるようにするには、バケットのGCSアクセスを設定する必要があります。サービスアカウントキーを使用してバケットアクセスを設定できます。

サービスアカウントキーを設定するには、以下の手順に従ってください。

  1. Google Cloud サービスサービスアカウントページページで、 CREATE SERVICE ACCOUNTをクリックしてサービスアカウントを作成します。詳細については、 サービスアカウントの作成を参照してください。

    1. サービスアカウント名を入力してください。

    2. 任意:サービスアカウントの説明を入力してください。

    3. サービスアカウントを作成するには、 CREATE AND CONTINUEをクリックしてください。

    4. Grant this service account access to projectで、必要な権限を持つIAMロールを選択します。

      • TiDB Cloud StarterまたはEssentialインスタンスからデータをエクスポートするにはstorage.objects.create権限を持つロールが必要です。
      • TiDB Cloud StarterまたはEssentialインスタンスにデータをインポートするにはstorage.buckets.getstorage.objects.get 、およびstorage.objects.list権限を持つロールが必要です。
    5. 次のステップに進むには、 Continueをクリックしてください。

    6. オプション: Grant users access to this service accountで、 サービスアカウントを他のリソースにアタッチする必要があるメンバーを選択します。

    7. Doneをクリックして、サービスアカウントの作成を完了してください。

    service-account

  2. サービスアカウントをクリックし、 KEYSページでADD KEYをクリックして、サービスアカウントキーを作成します。

    service-account-key

  3. デフォルトのキータイプJSONを選択し、 [作成]をクリックして Google Cloud 認証情報ファイルをダウンロードします。このファイルには、TiDB Cloud StarterまたはEssentialインスタンスの GCS アクセスを設定する際に使用する必要のあるサービスアカウント キーが含まれています。

Azure Blob Storageへのアクセスを構成する

TiDB CloudがAzure Blobコンテナにアクセスできるようにするには、コンテナ用のサービスSASトークンを作成する必要があります。

SAS トークンは、 Azure ARM テンプレート(推奨) または手動構成を使用して作成できます。

Azure ARMテンプレートを使用してSASトークンを作成するには、次の手順を実行します。

  1. 対象のTiDB CloudリソースのImportまたはExportページを開きます。

    1. TiDB Cloudコンソールにログインし、My TiDBページに移動します。

    2. 対象のTiDB Cloudリソースの名前をクリックして概要ページに移動し、左側のナビゲーションペインでData > ImportまたはData > Exportをクリックします。

  2. Generate New SAS Token via ARM Template Deploymentダイアログを開きます。

    • Azure Blob Storage からデータをインポートする場合:

      1. Import from Azure Blob Storageをクリックします。
      2. Folder URI欄に入力してください。
      3. SAS Tokenフィールドで、 Click here to create a new one with Azure ARM templateをクリックします。
    • データをAzure Blob Storageにエクスポートする場合:

      1. Export data to... > Azure Blob Storageをクリックします。TiDB Cloud StarterまたはEssentialインスタンスでこれまでデータのインポートまたはエクスポートが行われていない場合は、ページ下部のClick here to export data to... > Azure Blob Storageをクリックしてください。
      2. Azure Blob Storage Settingsエリアまでスクロールダウンし、SASトークンフィールドの下にあるClick here to create a new one with Azure ARM templateをクリックします。
  3. Azure ARMテンプレートを使用してSASトークンを作成します。

    1. Generate New SAS Token via ARM Template Deploymentダイアログで、 Click to open the Azure Portal with the pre-configured ARM templateをクリックします。

    2. Azureにログインすると、AzureCustom deploymentページにリダイレクトされます。

    3. Resource groupページで、リソースグループストレージアカウント名を入力してください。コンテナが配置されているストレージアカウントの概要ページから、すべての情報を取得できます。

      azure-storage-account-overview

    4. デプロイメントを確認するには、 Review + createまたはNextをクリックします。デプロイメントを開始するには、 Createをクリックします。

    5. 処理が完了すると、デプロイメント概要ページにリダイレクトされます。 Outputsセクションに移動して、SASトークンを取得してください。

Azure ARMテンプレートを使用してSASトークンを作成する際に問題が発生した場合は、以下の手順に従って手動で作成してください。

詳細はこちらをクリックしてください
  1. Azureストレージアカウントページで、コンテナーが属するストレージアカウントをクリックします。

  2. Storage accountページで、[セキュリティ + ネットワーク]をクリックし、 Shared access signatureをクリックします。

    sas-position

  3. Shared access signatureページで、次のように必要なアクセス許可を持つサービス SAS トークンを作成します。詳細については、 サービスSASトークンを作成しますを参照してください。

    1. Allowed servicesセクションで、 Blobサービスを選択します。

    2. Allowed Resource typesセクションで、 ContainerObjectを選択します。

    3. Allowed permissionsセクションで、必要に応じて権限を選択してください。

      • TiDB Cloud StarterまたはEssentialインスタンスからデータをエクスポートするには、Read権限とWrite権限が必要です。
      • TiDB Cloud StarterまたはEssentialインスタンスにデータをインポートするには、Read権限と一覧表示権限が必要です。
    4. 必要に応じてStart and expiry date/timeを調整してください。

    5. その他の設定については、デフォルト値をそのまま使用できます。

    sas-create

  4. SASトークンを生成するには、 Generate SAS and connection stringをクリックしてください。

Alibaba Cloudオブジェクトストレージサービス(OSS)へのアクセスを設定する

TiDB CloudがAlibaba Cloud OSSバケットにアクセスできるようにするには、そのバケットのアクセスキーペアを作成する必要があります。

アクセスキーペアを設定するには、以下の手順に従ってください。

  1. RAM ユーザーを作成し、AccessKey ペアを取得します。詳細については、 RAMユーザーを作成するを参照してください。

    Access Modeセクションで、 Using permanent AccessKey to accessを選択します。

  2. 必要な権限を持つカスタム ポリシーを作成します。詳細については、 カスタムポリシーを作成するを参照してください。

    • EffectセクションでAllowを選択します。

    • Serviceセクションで、 Object Storage Serviceを選択します。

    • Actionセクションで、必要に応じて権限を選択してください。

      TiDB Cloud Starter、 Essential、またはPremiumインスタンスにデータをインポートするには、 oss:GetObjectoss:GetBucketInfo 、およびoss:ListObjectsの権限を付与してください。

      TiDB Cloud Starter、 Essential、またはPremiumインスタンスからデータをエクスポートするには、 oss:PutObjectoss:GetBucketInfoの権限を付与してください。

    • Resourceセクションで、バケットとバケット内のオブジェクトを選択します。

  3. カスタム ポリシーを RAM ユーザーにアタッチします。詳細については、 RAMユーザーに権限を付与するを参照してください。

このページは役に立ちましたか?