SQL Serverとデータを送受信するデータベースアプリケーションを制作したのですが、ネットワークを傍受されないように暗号化したいです。  
今のところ接続文字列の設定をEncryptをtrueに、TrustServerCertificateをfalseにしてssl通信にして暗号化しようと考えています。  
これで暗号化できてるのでしょうか？

### 状況

前提はAzure App
Serviceにあるアプリケーションをデプロイしていてインターネットからアクセスできる状況です。その際、自分がアクセスさせたいユーザーだけを判別するためAzure
Active Directoryを使っています。

そしてアプリケーションからデータベースにデータベースからデータを取り出し持ってくる際の通信を暗号化することでセキュリティ的に傍受されないようにしたいです。もっというと、App
Serviceからのアクセスでしかデータベースは受け取らないようにしたいです。

データベースはAzureにあります。

設計で言うと、App ServiceにはAzure Active Directoryでアクセスを制御しているつもりでAzure SQL Database
にはApp Serviceからしかアクセスを受け付けないようにしたい、そしてデータ転送中の通信を暗号化することでセキュリティ的には、問題ないと思っています。
CC BY-SA 4.0
2023-07-06T12:36:31.567
95503
2023-07-09T07:35:00.677
2023-07-09T07:35:00.677
3060
58668
question
sql-server sql-azure
SQL Serverとデータベースアプリケーションの通信の暗号化の仕方
データベースもアプリケーションも Azure
上にあるのであれば、まず暗号化の前に、データベースをインターネットに公開しているのをやめたいです。何かしらの脆弱性が利用された場合の attack
surface が大きくなってしまいます。

<https://learn.microsoft.com/en-us/azure/azure-sql/database/security-best-
practice?view=azuresql> で Azure がベストプラクティスを公開しているので、これを参考にしてください。いくつかある章のうち
"Minimize attack surface" にネットワーク周りについて書かれています。特に VNet
Service、つまりプライベートなネットワークの中でデータベースを動かすべきと書かれています。

その上でデータベースとアプリケーション間の通信で TLS を使いたい場合、<https://learn.microsoft.com/en-
us/azure/azure-sql/database/connect-query-content-reference-
guide?view=azuresql#tls-considerations-for-database-connectivity>
が参考になります。Encrypt = On、TrustServerCertificate = Off の他、TLS 1.1、1.0
の無効化などについて書かれています。
CC BY-SA 4.0
2023-07-09T02:44:47.017
95533
2023-07-09T02:44:47.017
19110
95503
answer