すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:バックアップの暗号化

最終更新日:Jun 21, 2026

バックアップの暗о化では、Percona XtraBackup を使用して ApsaraDB RDS for MySQL インスタンスのバックアップを暗号化します。アプリケーションの変更は不要です。暗号化されたバックアップを使用するには、バックアップをダウンロードした後、展開して復号する必要があります。

前提条件

  • ApsaraDB RDS for MySQL インスタンスが次の要件を満たしている必要があります。

    • メジャーバージョン:8.0、5.7、または 5.6

    • エディション:High-availability Edition

    • ストレージタイプ:プレミアムローカル SSD

  • 専用 KMS インスタンスを購入してください。

背景情報

Key Management Service (KMS) は暗号化キーを生成および管理します。ApsaraDB RDS は暗号化に必要なキーまたは証明書を提供しません。Alibaba Cloud によって自動生成されるキー、またはお客様自身のカスタムキーを使用できます。

バックアップの暗号化にカスタムキーを使用するには、最初に サービスリンクロール を作成する必要があります。ApsaraDB RDS はこのロールを使用して、KMS キーのリスト、プロパティ、およびエイリアスを取得します。これにより、バックアップの暗号化を有効化した後、コンソールに使用可能な暗号化キーのリストと関連する暗号化情報が表示されます。

バックアップの暗号化を有効化すると、ApsaraDB RDS は選択したキーにタグを付けます。その後、バックアップシステムはサービスリンクロールとキーを使用してバックアップを暗号化します。

考慮事項

重要

バックアップの暗号化を有効化した後は、無効化できません。

  • バックアップの暗号化を有効化した後は、キーを変更できません。

  • バックアップの暗号化は、この機能を有効化した後に作成された新しいバックアップにのみ適用されます。

  • 暗号化されたバックアップをローカル環境に復元するには、バックアップをダウンロードしてから データを復号する必要があります。

    説明

    コンソールでバックアップを使用して データを復元する場合は、手動で復号する必要はありません。バックエンドがデータを自動的に復号し、その後復元します。

  • 既存のカスタムキーを使用する場合:

    • キーを無効化する、削除をスケジュールする、またはキーマテリアルを削除すると、キーは使用できなくなります。その結果、これらのバックアップに依存する運用保守オペレーションおよび復元が失敗し、インスタンスの可用性に影響する可能性があります。

    • 次の権限を持つ Alibaba Cloud アカウント、または RAM ユーザーを使用する必要があります。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ram:CreateServiceLinkedRole"
                  ],
                  "Resource": "*",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "ram:ServiceName": "backupencryption.rds.aliyuncs.com"
                      }
                  }
              },
              {
                  "Action": [
                      "kms:ListResourceTags",
                      "kms:TagResource"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:kms:*:*:*"
                  ]
              }
          ]
      }
      説明

      Resource Access Management (RAM) コンソールで権限を設定し、アカウントを承認できます。詳細については、「RAM ユーザーに ApsaraDB RDS インスタンスへのアクセスを承認」をご参照ください。

バックアップの暗号化の有効化

  1. RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
  2. 左側メニューで、バックアップリカバリ をクリックします。

  3. バックアップリカバリ ページで、バックアップポリシー タブをクリックします。

  4. バックアップの暗号化設定 セクションで、編集 をクリックし、[バックアップの暗号化] をオンにします。

  5. バックアップの暗号化設定 ダイアログボックスで、バックアップマスターキー を選択し、OK をクリックします。

    • 自動作成されたキーの使用

      Alibaba Cloud がキーを自動的に生成します。

    • 既存カスタムキーを使用する

      Key Management Service (KMS) から既存のキーを選択します。キーを作成していない場合は、「キーの作成」をご参照ください。

      説明

      カスタムキーを初めて使用する場合は、承認が必要です。画面の指示に従ってください。

Alibaba Cloud 内で暗号化されたバックアップを使用する場合、バックアップを手動で復号する必要はありません。データの復元などの関連オペレーションでは、システムがデータを自動的に復号します。ただし、暗号化されたバックアップをローカル環境にダウンロードする場合は、使用する前にバックアップを手動で復号する必要があります。データを復号するには、「データの復号」をご参照ください。

データの復号

このセクションでは、Ubuntu 16.04 システムを例に復号プロセスを説明します。

前提条件

操作手順

  1. バックアップセットの暗号文と暗号化アルゴリズムを取得します。

    1. ApsaraDB RDS コンソールにログインし、上部メニューでリージョンを選択してから、対象インスタンスの ID をクリックします。

    2. 左側メニューで、バックアップリカバリ をクリックします。

    3. バックアップリカバリ ページで、[基本バックアップ] > [データバックアップリスト] タブに移動します。

    4. 対象バックアップセットの 操作 列で、[1] > [暗号化情報の表示] をクリックし、暗号文暗号化アルゴリズム を取得します。

  2. Decrypt API を呼び出します。手順 1 で取得した 暗号文 を CiphertextBlob パラメーターに渡し、Base64 エンコードされたバイナリ文字列 Plaintext を取得します。

    {
      "KeyId": "xxx",
      "KeyVersionId": "xxx",
      "Plaintext": "S14dTb16i4Qo",
      "RequestId": "7474865d-f1fc-49c8-bf4d-7323de86ce59"
    }
  3. Plaintext 文字列を Base64 デコードし、得られたバイト列を 16 進数に変換して復号キーを取得します。この例では、Python 3 スクリプトを使用します。

    1. コマンドラインインターフェイスで vi decrypt.py を実行し、vi エディターを開きます。

    2. i を押して挿入モードに切り替えます。次の内容を入力し、ESC を押してから :wq を入力し、ファイルを保存して終了します。

      import base64
      import binascii
      plaintext = 'S14dTbl6i4Qo**********'  # 前の手順で取得した Plaintext を、単一引用符 ('') の間に入力します。
      password = binascii.b2a_hex(base64.b64decode(plaintext))   # 復号キーを取得し、password 変数に代入します。
      print(str(password, 'utf-8'))   # password を文字列として出力します。
                    
    3. python decrypt.py コマンドを実行します。コマンドにより復号キーが出力されます。次にサンプルキーを示します。

      4b5e1d4db97a********************
  4. 暗号化されたバックアップデータをダウンロードし、データを復号します。

    1. バックアップデータをローカルマシンにダウンロードします。

    2. 次のコマンドを実行して、バックアップデータを格納するディレクトリを作成します (例: /home/mysql/data )。

      mkdir /home/mysql/data
    3. パッケージを展開します。ファイルの拡張子に応じて展開コマンドを選択します。

      ファイルタイプ

      展開コマンド

      tar パッケージ (.tar.gz)

      tar -izxvf test1.tar.gz -C /home/mysql/data

      xbstream パッケージ (.xb.gz)

      gzip -d -c test1.xb.gz | xbstream -x -v -C /home/mysql/data

      xbstream ファイルパッケージ (_qp.xb)

      ## まずファイルを展開します。
      cat test1_qp.xb | xbstream -x -v -C /home/mysql/data
      
      ## 次にファイルを展開します。
      ### MySQL 5.6/5.7 の場合
      innobackupex --decompress --remove-original /home/mysql/data
      ### MySQL 8.0 の場合
      xtrabackup --decompress --remove-original --target-dir=/home/mysql/data

      xbstream qpress パッケージ (_xb.qp)

      qpress -do  test1_xb.qp  | xbstream -x -v -C /home/mysql/data

      展開後、ほとんどのデータファイルの拡張子は .xbcrypt になります。これは暗号化されていることを示します。

      backup-my.cnf.xbcrypt        testdb
      dbfortest                     xtrabackup_binlog_info.xbcrypt
      ibdata1.xbcrypt               xtrabackup_checkpoints
      mysql                         xtrabackup_info.xbcrypt
      performance_schema            xtrabackup_logfile.xbcrypt
      rds_table_info_json_105244.log  xtrabackup_slave_filename_info.xbcrypt
      _recycle_bin_                 xtrabackup_slave_info.xbcrypt
    4. 次のコマンドを実行してデータを復号します。

      xtrabackup --decompress --remove-original --decrypt=AES256 --encrypt-key=4b5e1d4db97a******************** --target-dir=/home/mysql/data
      説明

      主要パラメーター:

      • decrypt手順 1 で取得した 暗号化アルゴリズム です。この例では、値は AES256 です。

      • encrypt-key手順 3 で取得した復号キーです。

      • target-dir:バックアップファイルが保存されているディレクトリです。

      コマンドの実行後、ファイル名から .xbcrypt 拡張子が消えます。これにより、データが復号されたことを確認できます。

      backup-my.cnf            testdb
      dbfortest                xtrabackup_binlog_info
      ibdata1                  xtrabackup_checkpoints
      mysql                    xtrabackup_info
      performance_schema       xtrabackup_logfile
      rds_table_info_json_105244.log  xtrabackup_slave_filename_info
      recycle_bin              xtrabackup_slave_info