You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: Product/Archive/Architecture/High-Level-Design.md
+9-9
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# High Level Design
2
2
3
-
This page contains the high-level Design of the Tazama platform
3
+
This page contains the high-level Design of the Tazama system
4
4
5
5
## High Level Design Diagram
6
6
@@ -598,17 +598,17 @@ Case Management reads from and writes to OLAP every time it works on a particula
598
598
### 38: API for Enrichment Data Source <- Enrichment Data Source
599
599
600
600
- Many clients or public data stores that host Enrichment data will be exposed via an API
601
-
- This API is not part of the Tazama platform
601
+
- This API is not part of the Tazama system
602
602
- Enrichment Data Source can be of any type
603
-
- Enrichment Data Source will not be part of the Tazama platform
603
+
- Enrichment Data Source will not be part of the Tazama system
604
604
605
605
### 39: API for Enrichment Data Source -> Enrichment Data API
606
606
607
607
Enrichment Data API is implemented using OpenFaaS
608
608
609
609
- Many clients or public data stores that host Enrichment data will be exposed via an API
610
-
- This API is not part of the Tazama platform
611
-
- Enrichment Data API is part of the Tazama platform
610
+
- This API is not part of the Tazama system
611
+
- Enrichment Data API is part of the Tazama system
612
612
- Enrichment Data API will expose endpoints to receive data from external sources (examples: API for Enrichment Data). Access to those endpoints will be secure behind the API Gateway with authentication and authorization provided by KeyCloak
613
613
- Enrichment Data API will accept data in multiple formats (including JSON, CSV, XLS, XLSX, XML)
614
614
- Enrichment Data API is meshed using Linkerd
@@ -618,8 +618,8 @@ Enrichment Data API is implemented using OpenFaaS
618
618
Enrichment Data Pull is implemented using OpenFaaS
619
619
620
620
- Many clients or public data stores that host Enrichment data will be exposed via an API
621
-
- This API is not part of the Tazama platform
622
-
- Enrichment Data Pull is part of the Tazama platform
621
+
- This API is not part of the Tazama system
622
+
- Enrichment Data Pull is part of the Tazama system
623
623
- Enrichment Data Pull will NOT expose endpoints
624
624
- Enrichment Data Pull will call API for Enrichment Data Source (external) using the relevant authentication and authorization token
625
625
- Enrichment Data Pull will accept data in multiple formats (including JSON, CSV, XLS, XLSX, XML)
@@ -630,8 +630,8 @@ Enrichment Data Pull is implemented using OpenFaaS
630
630
Enrichment Data Pull is implemented using OpenFaaS
631
631
632
632
- Many public data stores (possibly a few clients) host Enrichment data source without an API in front of it
633
-
- This Enrichment Data Source is not part of the Tazama platform
634
-
- Enrichment Data Pull is part of the Tazama platform
633
+
- This Enrichment Data Source is not part of the Tazama system
634
+
- Enrichment Data Pull is part of the Tazama system
635
635
- Enrichment Data Pull will NOT expose endpoints
636
636
- Enrichment Data Pull will read data from Enrichment Data Source (external) using the relevant authentication and authorization token, if applicable
637
637
- Enrichment Data Pull will read data in multiple formats (including JSON, CSV, XLS, XLSX, XML, specific DB queries)
Copy file name to clipboardexpand all lines: Product/Archive/Architecture/Security.md
+25-25
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@
66
66
67
67
## Overview
68
68
69
-
Tazama platform is Kubernetes native. It can be deployed either on-premise or on one of the popular cloud providers including Amazon AWS, Google GCP or Microsoft Azure. Security has to be applied at multiple levels.
69
+
Tazama system is Kubernetes native. It can be deployed either on-premise or on one of the popular cloud providers including Amazon AWS, Google GCP or Microsoft Azure. Security has to be applied at multiple levels.
70
70
71
71
1. Network
72
72
2. Ingress
@@ -93,7 +93,7 @@ Tazama is design to work either On-Premise or with the Cloud provider products.
93
93
94
94
## Network
95
95
96
-
Tazama platform can be installed in any of the following three network architectures. There could be other architectures that you can implement the network but here are the absolute minimum expectations:
96
+
Tazama system can be installed in any of the following three network architectures. There could be other architectures that you can implement the network but here are the absolute minimum expectations:
97
97
98
98
1. Hardware that has access to the internet
99
99
2. Have an external firewall
@@ -114,21 +114,21 @@ By satisfying the absolute minimum expectations, Tazama can be installed in low-
114
114
115
115
### Intermediate
116
116
117
-
Tazama platform recommends having at-least 2 subnets (internal and DMZ) but it does not require that.
117
+
Tazama system recommends having at-least 2 subnets (internal and DMZ) but it does not require that.
118
118
119
119

120
120
121
121
### Enterprise-grade
122
122
123
-
Tazama platform is designed to be installed in enterprise grade infrastructure. It implies having multiple subnets includes a DMZ.
123
+
Tazama system is designed to be installed in enterprise grade infrastructure. It implies having multiple subnets includes a DMZ.
124
124
125
125

126
126
127
127
***Tazama recommends Enterprise-grade setup because it is a lot more secure***
128
128
129
129
## Ingress
130
130
131
-
Tazama platform includes Apache Ambassador as the API Gateway. DMZ is created using External and Internal Firewall. The network zones behind the internal firewall cannot be directly accessed from outside the External Firewall. Ports are open on the internal firewall and they can only be accessed by the API Gateway. API Gateway receives all the traffic that comes from outside the external firewall. API Gateway does the authentication and authorization based on the tokens provided by the IAM and does the traffic forwarding to the internal zones. Ingress traffic API Gateway is configured to **Deny-by-default.** API Gateway is set up to only allow **HTTPS** ingress traffic.
131
+
Tazama system includes Apache Ambassador as the API Gateway. DMZ is created using External and Internal Firewall. The network zones behind the internal firewall cannot be directly accessed from outside the External Firewall. Ports are open on the internal firewall and they can only be accessed by the API Gateway. API Gateway receives all the traffic that comes from outside the external firewall. API Gateway does the authentication and authorization based on the tokens provided by the IAM and does the traffic forwarding to the internal zones. Ingress traffic API Gateway is configured to **Deny-by-default.** API Gateway is set up to only allow **HTTPS** ingress traffic.
132
132
133
133

134
134
@@ -148,7 +148,7 @@ The entities that a Pod can communicate with are identified through a combinatio
are also available for authentication. Their primary intended use is to allow workloads running in the cluster to authenticate to the API server, however they can also be used for user authentication.
334
334
335
-
***Tazama recommends using KeyCloak for IAM / API Authentication. KeyCloak is already part of the Tazama platform***
335
+
***Tazama recommends using KeyCloak for IAM / API Authentication. KeyCloak is already part of the Tazama system***
336
336
337
337
If you want to use alternatives to Keyclock then the recommended approach for larger or production clusters, is to use an external authentication method:
338
338
@@ -434,7 +434,7 @@ Cloud Security implies Network security and File system security. Network securi
434
434
435
435
#### Cluster Security
436
436
437
-
Tazama platform implements Cluster Security using the following:
437
+
Tazama system implements Cluster Security using the following:
@@ -448,11 +448,11 @@ Tazama platform implements Cluster Security using the following:
448
448
449
449
#### Container Security
450
450
451
-
Container Security for Kubernetes is implemented using Container Runtime Class (CRC). Tazama platform only recommends CRC for Enterprise-grade setup because implementing CRC sacrifices performance to achieve this extra level of security. There are enough security measures across different layers of the Tazama platform that CRC is only a recommendation.
451
+
Container Security for Kubernetes is implemented using Container Runtime Class (CRC). Tazama system only recommends CRC for Enterprise-grade setup because implementing CRC sacrifices performance to achieve this extra level of security. There are enough security measures across different layers of the Tazama system that CRC is only a recommendation.
452
452
453
453
#### Code Security
454
454
455
-
Code Security in Tazama platform is implemented using the following:
455
+
Code Security in Tazama system is implemented using the following:
@@ -505,7 +505,7 @@ Each secret type is used for a specific purpose and will be access only inside t
505
505
506
506
## Datastore
507
507
508
-
All the datastores in the Tazama platform are recommended (Enterprise-grade installation) to be in their own Network zone that is firewall to allow access only certain other Network Zones, specific IPs (ranges) and ports. For Intermediate and Low-budget Tazama platform installation, we still have the protection of the External and/or Internal Firewalls and their rules.
508
+
All the datastores in the Tazama system are recommended (Enterprise-grade installation) to be in their own Network zone that is firewall to allow access only certain other Network Zones, specific IPs (ranges) and ports. For Intermediate and Low-budget Tazama system installation, we still have the protection of the External and/or Internal Firewalls and their rules.
509
509
510
510
On top of the above network security measures, here are the following ways Tazama secures the datastores (Document stores, Graph and SQL):
511
511
@@ -520,31 +520,31 @@ Whether connecting via a UI or through code, the connection (datastore specific
520
520
521
521
#### Secure connection to Document store (Druid)
522
522
523
-
In Tazama platform, TLS is enabled for Druid to support HTTPS only connections. Thus all Read and Write actions are executed over a secure connection.
523
+
In Tazama system, TLS is enabled for Druid to support HTTPS only connections. Thus all Read and Write actions are executed over a secure connection.
524
524
525
525
#### Secure connection to Graph store (ArangoDB)
526
526
527
-
In Tazama platform, TLS is enabled for ArangoDB to support HTTPS only connections. Thus all Read and Write actions are executed over a secure connection.
527
+
In Tazama system, TLS is enabled for ArangoDB to support HTTPS only connections. Thus all Read and Write actions are executed over a secure connection.
528
528
529
529
#### Authentication and Authorization in Document store (Druid)
530
530
531
-
In Tazama platform, the Authentication and Authorization is implemented using resources (Datasources, Configs and States) and actions (Read, Write).
531
+
In Tazama system, the Authentication and Authorization is implemented using resources (Datasources, Configs and States) and actions (Read, Write).
532
532
533
533
#### Authentication and Authorization in Document store (ArangoDB)
534
534
535
-
In Tazama platform, the Authentication and Authorization for ArangoDB is managed within ArangoDB itself. The users of ArangoDB are different from those managed in KeyCloak. This is by design to ensure no external client/user can access the database. The Authentication and Authorization in ArangoDB are managed using ArangoDB provided Web UI which is hosted in a separate network zone (Enterprise-grade setup).
535
+
In Tazama system, the Authentication and Authorization for ArangoDB is managed within ArangoDB itself. The users of ArangoDB are different from those managed in KeyCloak. This is by design to ensure no external client/user can access the database. The Authentication and Authorization in ArangoDB are managed using ArangoDB provided Web UI which is hosted in a separate network zone (Enterprise-grade setup).
536
536
537
537
#### Encryption at Rest (Druid)
538
538
539
539
Druid provides encryption at Rest and this is an understated security measure. **Encryption at rest** is designed to prevent the attacker from accessing the unencrypted data by ensuring the data is **encrypted** when on disk. If an attacker obtains a hard drive with **encrypted** data but not the **encryption** keys, the attacker must defeat the **encryption** to read the data.
540
540
541
541
#### Encryption at Rest (ArangoDB)
542
542
543
-
ArangoDB, unfortunately, does not provide Encryption at Rest in the Community version. This is the main reason why ArangoDB is only used as a Graph Datastore in Tazama platform
543
+
ArangoDB, unfortunately, does not provide Encryption at Rest in the Community version. This is the main reason why ArangoDB is only used as a Graph Datastore in Tazama system
544
544
545
545
## Transient Data
546
546
547
-
Tazama platform has many components. Transient Data covers data within various components of the Tazama platform. It does not cover Inter-Service communication (that is covered separately). Data is processed in Tazama components (including Data Preparation, Rules Processors etc). Tazama components write logs to ELK. Here are the possible Security vulnerabilities:
547
+
Tazama system has many components. Transient Data covers data within various components of the Tazama system. It does not cover Inter-Service communication (that is covered separately). Data is processed in Tazama components (including Data Preparation, Rules Processors etc). Tazama components write logs to ELK. Here are the possible Security vulnerabilities:
548
548
549
549
- Logs
550
550
- UI
@@ -557,14 +557,14 @@ Tazama logs are explicitly designed to not include any PII or Data elements in t
557
557
558
558
### UI
559
559
560
-
Tazama platform does not have a UI for any of the Tazama components that process data in the critical path. This does not include the Datastore (Datastore security is addressed in a separate section)
560
+
Tazama system does not have a UI for any of the Tazama components that process data in the critical path. This does not include the Datastore (Datastore security is addressed in a separate section)
561
561
562
562
### Hacked code or config
563
563
564
-
If hacked code or config, somehow even though highly unlikely, gets into the Tazama platform (example: code for any of the Rules Processors) then the data is protected in the following ways:
564
+
If hacked code or config, somehow even though highly unlikely, gets into the Tazama system (example: code for any of the Rules Processors) then the data is protected in the following ways:
565
565
566
566
- Pseudonymization - Any PII elements of the data are pseudonymized and those elements can only be looked up for validation / confirmation. The hacked code will not be able to decrypt the pseudonymized data.
567
-
- Hacked code will attempt to write the code and push it out of Tazama platform to an outside location. The network policy and setup has tight control over egress (ports, IPs) to ensure that the written data cannot exit the Tazama platform.
567
+
- Hacked code will attempt to write the code and push it out of Tazama system to an outside location. The network policy and setup has tight control over egress (ports, IPs) to ensure that the written data cannot exit the Tazama system.
568
568
- Hacked code will attempt to write to a file system. All Tazama components are Kubernetes pods/containers; File system security of Kubernetes will ensure that any data written to the disks is encrypted hence unusable.
569
569
570
570
### Data History
@@ -628,7 +628,7 @@ Configuration for Tazama architecture products (Linkerd, Druid, ArangoDB, gRPC e
628
628
629
629
## Code
630
630
631
-
Tazama platform will be available as an open source code base. It will be
631
+
Tazama system will be available as an open source code base. It will be
632
632
633
633
- maintained in a public repo
634
634
- you can either update the public repo by creating your own branch and follow a Pull Request / Merge Request process (at a high-level: the code is managed in different git branches and updated based on review)
@@ -638,7 +638,7 @@ Tazama platform will be available as an open source code base. It will be
638
638
- secure access, if done manually
639
639
- file system security / encryption will need to be enabled
640
640
- no PII or data or transaction information should be present in the configuration
641
-
- code will have to be deployed / executed for various Tazama platform components
641
+
- code will have to be deployed / executed for various Tazama system components
642
642
643
643
## Role Based Secure Access
644
644
@@ -661,9 +661,9 @@ For more details on RBAC Authorization using Kubernetes [https://kubernetes.io/d
661
661
662
662
***Here are the Access Controls that Tazama recommends for its various components:***
663
663
664
-
- Access to any Tazama platform Datastores need to be managed separately. In case the IAM gets compromised, the access tokens/passwords to the Datastores will not be compromised.
665
-
- Access to send transactions to the Tazama platform (example: Hub, Switch, DFSP etc) needs to be centrally managed using IAM (KeyCloak)
666
-
- Acccess to any Tazama platform UIs need to be managed seperately. In case the IAM gets compromised, the access passwords to the Datastores will not be compromised.
664
+
- Access to any Tazama system Datastores need to be managed separately. In case the IAM gets compromised, the access tokens/passwords to the Datastores will not be compromised.
665
+
- Access to send transactions to the Tazama system (example: Hub, Switch, DFSP etc) needs to be centrally managed using IAM (KeyCloak)
666
+
- Acccess to any Tazama system UIs need to be managed seperately. In case the IAM gets compromised, the access passwords to the Datastores will not be compromised.
Copy file name to clipboardexpand all lines: Product/Archive/Data-Models.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Data Models
2
2
3
-
Data Models in Tazama platform are stored in the code and not in the Database/Datastore. Datastore simply provides data storage, and efficient CRUD functionalities. In other words, ArangoDB provides the ability to create/add records, update records, query/read records and delete records.
3
+
Data Models in Tazama system are stored in the code and not in the Database/Datastore. Datastore simply provides data storage, and efficient CRUD functionalities. In other words, ArangoDB provides the ability to create/add records, update records, query/read records and delete records.
4
4
5
5
How the Data object is design is not stored in ArangoDB but rather the code base. Example: ISO20022 Quote or ISO20022 Transfer data model is stored in the code. This data design pattern is called ORM (Object-Relationship-Mapping).
0 commit comments