Azure Cosmos DB でのデータの暗号化Data encryption in Azure Cosmos DB

保存時の暗号化という語句は、一般的にはソリッド ステート ドライブ (SSD) やハード ディスク (HDD) などの不揮発性メモリ デバイスでデータを暗号化することを意味します。Encryption at rest is a phrase that commonly refers to the encryption of data on nonvolatile storage devices, such as solid state drives (SSDs) and hard disk drives (HDDs). Cosmos DB では、プライマリ データベースを SSD に保存します。Cosmos DB stores its primary databases on SSDs. そのメディア添付ファイルとバックアップは Azure Blob ストレージに保存され、このストレージは通常 HDD でバックアップされます。Its media attachments and backups are stored in Azure Blob storage, which is generally backed up by HDDs. Cosmos DB の保存時の暗号化のリリースにより、すべてのデータベース、メディア添付ファイル、バックアップが暗号化されます。With the release of encryption at rest for Cosmos DB, all your databases, media attachments, and backups are encrypted. データの転送中 (ネットワーク経由) と保存時 (非揮発性メモリ) にデータが暗号化されることで、エンド ツー エンドの暗号化が実現しました。Your data is now encrypted in transit (over the network) and at rest (nonvolatile storage), giving you end-to-end encryption.

PaaS サービスである Cosmos DB は、非常に簡単に使用できます。As a PaaS service, Cosmos DB is very easy to use. Cosmos DB に保存されているすべてのユーザー データは、保存時と転送時に暗号化されているため、操作は何も必要ありません。Because all user data stored in Cosmos DB is encrypted at rest and in transport, you don't have to take any action. つまり、保存時の暗号化機能は、既定で "オン" になっています。Another way to put this is that encryption at rest is "on" by default. オンまたはオフにするコントロールはありません。There are no controls to turn it off or on. Azure Cosmos DB では、アカウントが実行されているすべてのリージョンで AES 256 暗号化が使われます。Azure Cosmos DB uses AES-256 encryption on all regions where the account is running. 可用性とパフォーマンスの SLA を引き続き満たしながら、この機能を提供します。We provide this feature while we continue to meet our availability and performance SLAs.

Azure Cosmos DB に保存時の暗号化の実装Implementation of encryption at rest for Azure Cosmos DB

保存時の暗号化は、セキュリティで保護されたキー ストレージ システム、暗号化ネットワーク、暗号化 API など、多くのセキュリティ テクノロジを使用して実装されています。Encryption at rest is implemented by using a number of security technologies, including secure key storage systems, encrypted networks, and cryptographic APIs. データの暗号化を解除して処理するシステムは、キーを管理するシステムと通信する必要があります。Systems that decrypt and process data have to communicate with systems that manage keys. 図には、暗号化されたデータの格納とキーの管理がどのように分離されているかを示しています。The diagram shows how storage of encrypted data and the management of keys is separated.

設計の図

ユーザー要求の基本的なフローは、次のとおりです。The basic flow of a user request is as follows:

  • ユーザー データベース アカウントが準備され、ストレージ キーが管理サービス リソース プロバイダーへの要求を通じて取得されます。The user database account is made ready, and storage keys are retrieved via a request to the Management Service Resource Provider.
  • ユーザーは、HTTPS/セキュリティで保護された転送を通じて、Cosmos DB への接続を作成します。A user creates a connection to Cosmos DB via HTTPS/secure transport. (SDK が詳細を抽象化します。)(The SDKs abstract the details.)
  • ユーザーは、先に作成したセキュリティで保護された接続経由で、格納対象である JSON ドキュメントを送信します。The user sends a JSON document to be stored over the previously created secure connection.
  • ユーザーがインデックスを無効にしていない限り、JSON ドキュメントのインデックスが作成されます。The JSON document is indexed unless the user has turned off indexing.
  • JSON ドキュメントとインデックス データの両方が、セキュリティで保護されたストレージに書き込まれます。Both the JSON document and index data are written to secure storage.
  • データはセキュリティで保護されたストレージから定期的に読み取られ、Azure の暗号化された Blob ストアにバックアップされます。Periodically, data is read from the secure storage and backed up to the Azure Encrypted Blob Store.

よく寄せられる質問Frequently asked questions

Q:Storage Service Encryption を有効にすると、Azure Storage の料金はどれくらい増えますか?Q: How much more does Azure Storage cost if Storage Service Encryption is enabled?

A:追加コストはかかりません。A: There is no additional cost.

Q:だれが暗号化キーを管理するのですか?Q: Who manages the encryption keys?

A:キーは Microsoft によって管理されます。A: The keys are managed by Microsoft.

Q:暗号化キーが交換される頻度はどの程度ですか?Q: How often are encryption keys rotated?

A:マイクロソフトには、暗号化キーのローテーションに関する一連の内部ガイドラインがあり、Cosmos DB はそれに従っています。A: Microsoft has a set of internal guidelines for encryption key rotation, which Cosmos DB follows. 個々のガイドラインは公開されていません。The specific guidelines are not published. Microsoft が公開しているセキュリティ開発ライフ サイクル (SDL) は、内部用ガイダンスのサブセットと見なされ、開発者に便利なベスト プラクティスが収められています。Microsoft does publish the Security Development Lifecycle (SDL), which is seen as a subset of internal guidance and has useful best practices for developers.

Q:独自の暗号化キーを使用できますか?Q: Can I use my own encryption keys?

A:Cosmos DB は PaaS サービスであり、Microsoft はこのサービスの使いやすさを維持するために努力してきました。A: Cosmos DB is a PaaS service, and we worked hard to keep the service easy to use. この質問は、PCI-DSS などのコンプライアンス要件のクリアに関する代替質問として頻繁に寄せられることがわかりました。We've noticed this question is often asked as a proxy question for meeting a compliance requirement like PCI-DSS. この機能を構築する際に、コンプライアンス監査者の協力を得て、Cosmos DB を使用する顧客が自身でキーを管理しなくても要件を満たすことができるようにしました。As part of building this feature, we worked with compliance auditors to ensure that customers who use Cosmos DB meet their requirements without the need to manage keys themselves.

Q:どのリージョンで暗号化が有効になっていますか?Q: What regions have encryption turned on?

A:すべての Azure Cosmos DB リージョンで、すべてのユーザー データに対して暗号化が有効になっています。A: All Azure Cosmos DB regions have encryption turned on for all user data.

Q:暗号化はパフォーマンス (待機時間およびスループット) の SLA に影響しますか?Q: Does encryption affect the performance latency and throughput SLAs?

A:パフォーマンスの SLA への影響や変化はないため、既存および新規のすべてのアカウントで保存時の暗号化が有効になります。A: There is no impact or changes to the performance SLAs now that encryption at rest is enabled for all existing and new accounts. 最新の保証の詳細については、「Cosmos DB の SLA」 ページを参照してください。You can read more on the SLA for Cosmos DB page to see the latest guarantees.

Q:ローカル エミュレーターは、保存時の暗号化に対応していますか?Q: Does the local emulator support encryption at rest?

A:エミュレーターは、スタンドアロンの開発/テスト ツールであり、管理された Cosmos DB サービスで使用するキー管理サービスを使用していません。A: The emulator is a standalone dev/test tool and does not use the key management services that the managed Cosmos DB service uses. 機密性の高いエミュレーター テスト データを格納するドライブで BitLocker を有効にすることをお勧めします。Our recommendation is to enable BitLocker on drives where you are storing sensitive emulator test data. エミュレーターは既定のデータ ディレクトリの変更と、よく知られた場所の使用をサポートしています。The emulator supports changing the default data directory as well as using a well-known location.

次の手順Next steps

Cosmos DB のセキュリティと最新の機能強化の概要については、「Azure Cosmos DB データベースのセキュリティ」を参照してください。For an overview of Cosmos DB security and the latest improvements, see Azure Cosmos DB database security. マイクロソフトが取得している認証の詳細については、Azure セキュリティ センターに関するページを参照してください。For more information about Microsoft certifications, see the Azure Trust Center.