セキュリティ機能
VeloDB Cloud は、分離、認証、認可、暗号化、監査、災害復旧などの完全なセキュリティメカニズムを提供し、顧客データとサービスのセキュリティを確保します。
製品アーキテクチャ
VeloDB Cloud クラウドネイティブデータウェアハウスには、organization、warehouse、cluster という3つの重要な概念が含まれています。製品設計の基盤として、これらは独立した、分離された、弾性的でスケーラブルなサービスを構築し、企業がビッグデータ分析ビジネスの基盤を迅速かつ安全に構築できるよう支援します。
- Organization: organizationは企業または比較的独立したグループを表します。VeloDB Cloud に登録後、ユーザーはorganizationとしてサービスを使用します。Organizationは VeloDB Cloud における請求決済オブジェクトです。異なるorganization間では請求、リソース、データが相互に分離されています。
- Warehouse: warehouseは論理的な概念で、コンピューティングリソースとストレージリソースを含みます。各organizationは複数のwarehouseを作成して、注文、広告、物流などの異なるビジネスのデータ分析ニーズを満たすことができます。同様に、異なるwarehouse間でもリソースとデータが相互に分離されており、organization内のセキュリティニーズを満たすために使用できます。
- Cluster: clusterはwarehouse内のコンピューティングリソースで、1つまたは複数のコンピューティングノードを含み、弾性的に拡張・縮小が可能です。1つのwarehouseは複数のclusterを含むことができ、これらは基盤となるデータを共有します。異なるclusterは統計レポート、インタラクティブ分析など異なるワークロードを満たすことができ、複数のcluster間のワークロードは相互に干渉しません。
技術的観点から、VeloDB Cloud のコア技術アーキテクチャは3つの層に分かれています:
Service Layer
- Manager: コンピューティングリソースとストレージリソースの管理を担当します。ユーザーがwarehouseを作成すると、Managerがストレージバケットの作成を担当し、ユーザーがclusterを作成すると、Managerがコンピューティングリソースの作成を担当します。
- Metadata: organization、ユーザー、warehouse、cluster、データベースTableなどのメタデータを格納します。
- Security: セキュリティポリシーの設定を担当し、最小権限の原則を使用します。
Compute Layer
- Data warehouse: 論理的な概念で、warehouseメタデータ、cluster、データストレージなどの物理オブジェクトを含みます。
- Cluster: clusterはコンピューティングリソースとキャッシュされたデータのみを含みます。同じwarehouseの複数のclusterはデータストレージを共有します。
Storage Layer
- Object storage: warehouse内のデータは、ファイル形式でクラウドサービス上のオブジェクトストレージに格納されます。
セキュリティレベル
VeloDB Cloud は、リソース分離、認証、データ送信・保存の各次元から完全で全リンクのデータセキュリティ機能を提供します:
- リソース分離: organization間でストレージとコンピューティングが相互に分離されています。
- 本人認証: 訪問者(ユーザーまたはアプリケーション)の身元を証明します。
- アクセス制御: データへのユーザーアクセス権限を設定し、ユーザーがきめ細かい方法でデータ権限を制御できることを保証します。
- データ保護: ストレージと送信の暗号化により、物理ディスクとネットワーク監視を通じてデータが漏洩しないことを保証し、データ災害復旧保護をサポートします。
- ネットワークセキュリティ: パブリックネットワークホワイトリスト、プライベートネットワークリンク、organization間セキュリティグループ、およびオプションの独立VPCがネットワーク接続のセキュリティを保証します。
- セキュリティ監査: コンソールとwarehouse内の操作の透明で完全な監査。
- アプリケーションセキュリティ: VeloDB クラウドサービスは攻撃を防ぐ能力を持っています。
リソース分離
SaaS デプロイメント
VeloDB Cloud は、ストレージとコンピューティングの分離を通じて、異なるorganization間でのデータの完全な分離を保証します:
データストレージ
- 各organizationは各クラウドサービスエリアで個別のオブジェクトストレージバケットを使用し、バケットはプライベートアクセスに設定され、STS認証を使用します。
- 各warehouseにはクラウドサービスのサブアカウントが割り当てられ、各warehouseのストレージ権限はこのサブアカウントにのみ付与されます。
- キャッシュデータはcluster内のローカルにのみ格納され、異なるwarehouseは相互にアクセスできません。 コンピューティングリソース
- Clusterはwarehouse間で使用されることはありません。つまり、clusterは1つのwarehouseにのみ属します。
- 各organizationのclusterは、セキュリティグループを通じて厳格なファイアウォールルールを設定し、異なるorganization間のclusterが相互に接続できないことを保証します。
BYOC デプロイメント
VeloDB Cloud BYOC デプロイメント形式では、データストレージとコンピューティングリソースは完全にあなた自身のVPC内に保持され、データはあなたのVPCを離れることなく、データとコンピューティングのセキュリティとコンプライアンスを保証します。
データストレージ データは完全にあなた自身のVPC内に格納され、データはあなたのVPCを離れません。 コンピューティングリソース
- コンピューティングリソースは完全にあなた自身のクラウドリソースプール内にあり、データウェアハウスサービスを提供します。
- 1つのwarehouseは複数のclusterを含むことができ、これらは基盤となるデータを共有します。異なるclusterは統計レポート、インタラクティブ分析など異なるワークロードを満たすことができ、複数のcluster間のワークロードは相互に干渉しません。
本人認証
VeloDB Cloud のコントロールプレーンまたはデータプレーンへのあらゆるアクセスには本人認証が必要で、これは主に訪問者の身元を確認するために使用されます。VeloDB Cloud は以下のメカニズムを通じて認証の信頼性を保証します:
- コントロールプレーン
- 多要素認証(MFA)をサポートし、メールパスワードと携帯電話認証コードなどの組み合わせ認証方式を通じてセキュリティ保護機能を向上させます。
- データプレーン
- MySQL 認証プロトコルを使用して接続します。
- HTTP プロトコルのデータインタラクションには本人認証が必要で、認証方式は MySQL プロトコルと一致しています。
- 本人認証のための IP ブラックリストとホワイトリストメカニズムをサポートします。
- パスワードポリシー
- 弱いパスワードの設定を防ぎ、強力なパスワードを使用します。
- パスワードのブルートフォース攻撃を防ぎます。
- ユーザーパスワードは暗号化されて保存されます。
アクセス制御
VeloDB には3つのレベルのアクセス制御エンティティがあります:organization、user、user in warehouse です。Organization は請求単位で、同じorganizationは請求を共有します。User は制御に使用され、データウェアハウスやclusterの作成・削除などに使用されます。User in warehouse はデータに使用され、データベースTableを操作でき、MySQL のユーザーに似ています。
RBAC 権限制御
Organization 下には複数のwarehouseを作成でき、各warehouse間のデータは分離されています。Organization管理者は、organization内のユーザーに異なる役割を設定でき、役割を通じてwarehouseの作成/削除/編集/表示/クエリ/監視に対するユーザーの権限を制御します。詳細については、VeloDB Cloud User Management を参照してください。 User in warehouse は MySQL の権限管理メカニズムを参照し、Tableレベルでのきめ細かい権限制御、役割ベースの権限アクセス制御を実現し、ホワイトリストメカニズムをサポートします。詳細については、VeloDB Cloud 許可 Management を参照してください。
行レベルセキュリティ
管理者は条件に合致する行に対してきめ細かい権限制御を実行でき、特定のユーザーが条件に合致する行のみにアクセスできるようにすることなどができます。これは、複数のユーザーがTable内の異なるデータ行に対して異なる権限を持つ場合に使用されます。 構文説明、行ポリシーのドキュメント
CREATE ROW POLICY {NAME} ON {TABLE}
AS {RESTRICTIVE|PERMISSIVE} TO {USER} USING {PREDICATE};
例 test_row_policy_1という名前のポリシーを作成します。このポリシーは、user1がtable1のcol1列の値が1または2に等しい行にアクセスすることを禁止します。
CREATE ROW POLICY test_row_policy_1 ON db1.table1
AS RESTRICTIVE TO user1 USING (col1 in (1, 2));
test_row_policy_1という名前のポリシーを作成します。このポリシーは、user1がtable1内でcol1列の値が1または2に等しい行にアクセスすることを許可します。
CREATE ROW POLICY test_row_policy_1 ON db1.table1
AS PERMISSIVE TO user1 USING (col1 in (1, 2));
Column-level security
管理者は、ビューを通じて列レベルの権限制御を実装できます。例えば、ユーザーが特定の列にアクセス権限を持たない場合、その列を含まないビューをそのユーザー用に作成することができます。 Syntax(以下は基本的な構文のみを示しています。詳細なビューの構文については参照してください)
CREATE VIEW {name} {view_column_list}
AS
SELECT {table_column_list} FROM {src_table}
例 ユーザーuser1にTablet1のカラムidとnameの読み取りを許可する
create view view2 (id,name) as select id,name from t1
grant SELECT_PRIV to user1 on view2
データマスキング
VeloDBは、数値と文字列をマスキングできる便利なmask関数を提供します。ユーザーはmask関数を使用してビューを作成し、ウェアハウス内のユーザーのアクセス制御を通じてビューの権限を管理することで、ユーザーに対するデータマスキングを実装できます。
構文の説明
VARCHAR mask(VARCHAR str, [, VARCHAR upper[, VARCHAR lower[, VARCHAR number]]])
Example strのマスクされたバージョンを返します。デフォルトでは、大文字は"X"に変換され、小文字は"x"に変換され、数字は"n"に変換されます。例えば、mask("abcd-EFGH-8765-4321")はxxxx-XXXX-nnnn-nnnnになります。追加のパラメータを提供することで、マスクで使用される文字をオーバーライドできます:2番目のパラメータは大文字のマスク文字を制御し、3番目のパラメータは小文字を制御し、4番目のパラメータは数字を制御します。例えば、mask("abcd-EFGH-8765-4321", "U", "l", "#")はllll-UUUU-####-####になります。
// table test
+-----------+
| name |
+-----------+
| abc123EFG |
| NULL |
| 456AbCdEf |
+-----------+
mysql> select mask(name) from test;
+--------------+
| mask(`name`) |
+--------------+
| xxxnnnXXX |
| NULL |
| nnnXxXxXx |
+--------------+
mysql> select mask(name, '*', '#', '$') from test;
+-----------------------------+
| mask(`name`, '*', '#', '$') |
+-----------------------------+
| ###$$$*** |
| NULL |
| $$$*#*#*# |
+-----------------------------+
データ保護
ストレージ暗号化
- クラウドサービスオブジェクトストレージのストレージ暗号化を使用して、オブジェクトストレージや物理ディスクから有効なデータを直接取得できないようにします。
- クラウドサービスディスク暗号化を使用して、キャッシュ内の有効なデータをディスクから直接取得できないようにします。
- VeloDBが提供する暗号化機能を使用して、オブジェクトストレージ、物理ディスク、キャッシュディスクから有効なデータを直接取得できないようにします。
- VeloDBキーローテーション保護:各顧客は独立したキーを使用し、定期的にキーをローテーションし、セキュアな一時認証メカニズム(STSまたは事前署名メカニズム)を通じてオブジェクトにアクセスすることで、キー漏洩のリスクを回避します。
- RSA暗号化アルゴリズムを使用してデータを暗号化します
転送暗号化
- MySQLおよびjdbcプロトコルアクセスはTLS暗号化転送をサポートし、双方向TLS検証(双方向TLS)をサポートします。
- データ相互作用におけるHTTPSセキュア転送。
災害復旧保護
- データおよびメタデータストレージは、マルチアベイラビリティゾーンストレージアーキテクチャを採用し、アベイラビリティゾーン間でのデータ災害復旧を保証します。
- オブジェクトストレージではバージョニングがデフォルトで有効になっており、アプリケーションレベルでのオブジェクトのマルチバージョン冗長性を保証します。
- 災害復旧機能を提供するための定期的なメタデータバックアップ。
- データの正確性と信頼性を保証するための定期的なメタデータとデータのチェック。
- WarehouseレベルのTimeTravel(近日リリース予定)をサポート。
- クロスリージョンレプリケーションCCR。
ネットワークセキュリティ
最小権限の原則の下、VeloDBはVPCのネットワークセキュリティルールを厳格に制限しており、以下が含まれます:
- 外部ネットワークアクセスはゲートウェイを経由する必要があります。
- 運用保守はVPNを経由する必要があります。
- 組織的分離。
VeloDB warehouseは、パブリックネットワークとプライベートネットワーク接続の2つのネットワーク接続方法を提供します:
- パブリックネットワーク:ホワイトリストのIPのみがアクセス可能で、過度なパブリックネットワーク権限を効果的に回避できます。
- プライベートネットワーク接続:ユーザーはVPC内のプライベートネットワーク接続を通じてVeloDBにアクセスできます。プライベートネットワーク接続は一方向接続のみを保証し、設定されたVPCのみが接続可能であり、アクセス元を効果的に制限します。
セキュリティ監査
コンソールの制御操作およびwarehouseカーネルのアクセス操作に対する完全な監査メカニズムがあります。顧客はクラウド製品コンソールを通じて対応する監査情報を取得できます。
アプリケーションセキュリティ
VeloDBは、クラウドファイアウォール、Web Application Firewall(WAF)、データベース監査などのセキュリティ製品を使用して、クラウドサービスアプリケーションのセキュリティを保証しています。