このページでは、mongo シェルを使用して、SSL (Secure Sockets Layer) 暗号化モードで ApsaraDB for MongoDB データベースに接続する方法について説明します。 SSL 暗号化では、トランスポート層でネットワーク接続を暗号化して、データのセキュリティを向上させ、データの整合性を確保できます。

前提条件

  • ApsaraDB for MongoDB インスタンスはレプリカセットインスタンスであり、インスタンスのデータベースバージョンは 3.4 または 4.0 、 である必要があります。
    インスタンスのデータベースバージョンが必要なバージョンよりも古い場合は、データベースバージョンをアップグレードする必要があります。 詳細については、「データベースのバージョンアップグレード」をご参照ください。
  • インスタンスに対して SSL 暗号化が有効になっている必要があります。 詳細については、「ApsaraDB for MongoDB インスタンスの SSL 暗号化の設定」をご参照ください。
  • Mongo シェル 3.0 以降が、データベースへ接続するローカルサーバー、またはECS インスタンスにインストールされている必要があります。 インストール手順の詳細については、 「MongoDB のインストール」をご参照ください。
  • ローカルサーバー、または ECS インスタンスの IP アドレスが、ApsaraDB for MongoDB インスタンスのホワイトリストに追加されている必要があります。 詳細は、「ホワイトリストの構成」 をご参照ください。

注意事項

インスタンスの SSL 暗号化を有効にすると、このインスタンスの CPU 使用率が大幅に増加します。 必要な場合にのみ有効にすることを推奨します。 たとえば、インターネット経由で ApsaraDB for MongoDB インスタンスに接続するときに SSL 暗号化を有効にできます。
内部ネットワーク接続はインターネット接続よりも安全であるため、SSL 暗号化は必要ありません。

手順

以下は Linux システムの例です。

  1. SSL CA 証明書パッケージをダウンロードします。 詳細については、「SSL 暗号化の構成」をご参照ください。
  2. パッケージを解凍し、証明書ファイルをローカルサーバーまたは mongo シェルがインストールされた ECS インスタンスにアップロードします。
    この例では、 .pem ファイルをローカルサーバーの /root/sslcafile/ ディレクトリにダウンロードします。
  3. ローカルサーバーまたは ECS インスタンスで、次のコマンドを実行して、ApsaraDB for MongoDB インスタンスのデータベースに接続します。
    mongo --host <host> -u <username> -p --authenticationDatabase <database> --ssl --sslCAFile <sslCAFile_path> --sslAllowInvalidHostnames
    • <host>:ApsaraDB for MongoDB インスタンスのプライマリまたはセカンダリノードの接続文字列 (ポート番号を含む)。 詳細については、「レプリカセットインスタンスの接続情報の取得」をご参照ください。
      • インターネット経由で ApsaraDB for MongoDB インスタンスのデータベースに接続する場合は、このインスタンスのインターネットアドレスを申請してください。 詳細については、「パブリックアドレスの申請」をご参照ください。
      • 内部ネットワークを使用して ApsaraDB for MongoDB のデータベースに接続する場合は、ApsaraDB for MongoDB インスタンスが ECS インスタンスと同じネットワークタイプであることを確認してください。 ネットワークタイプが VPC の場合、2 つのインスタンスが同じ VPC にあることを確認してください。
    • <username>:ApsaraDB for MongoDB インスタンスのデータベースへのログインに使用するユーザー名。 初期ユーザー名は root です。 実稼働環境では、root ユーザーとしてデータベースにログインしないことを推奨します。 ユーザーを作成し、必要に応じてユーザーに権限を付与できます。 詳細については、「DMS を使用して MongoDB ユーザーを管理する」をご参照ください。
    • <database>:認証データベースの名前。 データベースユーザーが作成されるデータベースです。 データベースのユーザー名が root の場合、admin と入力してください。
    • <sslCAFile_path>:SSL CA証明書ファイルのパス。
    例:
    mongo --host dds-bpxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717 -u root -p --authenticationDatabase admin --ssl --sslCAFile /root/sslcafile/ApsaraDB-CA-Chain.pem  --sslAllowInvalidHostnames
  4. Enter password: が表示されたら、データベースユーザーのパスワードを入力して Enter を押します。
    • パスワードを入力するときに、パスワードの文字は明示的に表示されません。
    • root ユーザーのパスワードを忘れた場合は、パスワードをリセットできます。 詳細は、「パスワードの設定」をご参照ください。

一般的な接続シナリオ