Skip to content

Commit d0aef52

Browse files
authored
docs
1 parent 5beaa51 commit d0aef52

11 files changed

+71
-71
lines changed

Product/Archive/Architecture/High-Level-Design.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# High Level Design
22

3-
This page contains the high-level Design of the Tazama platform
3+
This page contains the high-level Design of the Tazama system
44

55
## High Level Design Diagram
66

@@ -598,17 +598,17 @@ Case Management reads from and writes to OLAP every time it works on a particula
598598
### 38: API for Enrichment Data Source <- Enrichment Data Source
599599

600600
- 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
602602
- 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
604604

605605
### 39: API for Enrichment Data Source -> Enrichment Data API
606606

607607
Enrichment Data API is implemented using OpenFaaS
608608

609609
- 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
612612
- 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
613613
- Enrichment Data API will accept data in multiple formats (including JSON, CSV, XLS, XLSX, XML)
614614
- Enrichment Data API is meshed using Linkerd
@@ -618,8 +618,8 @@ Enrichment Data API is implemented using OpenFaaS
618618
Enrichment Data Pull is implemented using OpenFaaS
619619

620620
- 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
623623
- Enrichment Data Pull will NOT expose endpoints
624624
- Enrichment Data Pull will call API for Enrichment Data Source (external) using the relevant authentication and authorization token
625625
- 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
630630
Enrichment Data Pull is implemented using OpenFaaS
631631

632632
- 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
635635
- Enrichment Data Pull will NOT expose endpoints
636636
- Enrichment Data Pull will read data from Enrichment Data Source (external) using the relevant authentication and authorization token, if applicable
637637
- Enrichment Data Pull will read data in multiple formats (including JSON, CSV, XLS, XLSX, XML, specific DB queries)

Product/Archive/Architecture/Security.md

+25-25
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666

6767
## Overview
6868

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.
7070

7171
1. Network
7272
2. Ingress
@@ -93,7 +93,7 @@ Tazama is design to work either On-Premise or with the Cloud provider products.
9393

9494
## Network
9595

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:
9797

9898
1. Hardware that has access to the internet
9999
2. Have an external firewall
@@ -114,21 +114,21 @@ By satisfying the absolute minimum expectations, Tazama can be installed in low-
114114

115115
### Intermediate
116116

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.
118118

119119
![](../../../images/IBudgetNetwork.png)
120120

121121
### Enterprise-grade
122122

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.
124124

125125
![](../../../images/IdealNetwork.png)
126126

127127
***Tazama recommends Enterprise-grade setup because it is a lot more secure***
128128

129129
## Ingress
130130

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.
132132

133133
![](../../../images/Ingress.drawio.png)
134134

@@ -148,7 +148,7 @@ The entities that a Pod can communicate with are identified through a combinatio
148148

149149
[https://kubernetes.io/docs/concepts/services-networking/network-policies/](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
150150

151-
***Network Policy recommendation for Tazama platform: You have a network policy implemented and Default deny all ingress and all egress traffic***
151+
***Network Policy recommendation for Tazama system: You have a network policy implemented and Default deny all ingress and all egress traffic***
152152

153153
### Example Network Policy
154154

@@ -332,7 +332,7 @@ Kubernetes provides a number of in-built mechanisms for API server authenticatio
332332
- [Service Accounts Tokens](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens)
333333
 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.
334334

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***
336336

337337
If you want to use alternatives to Keyclock then the recommended approach for larger or production clusters, is to use an external authentication method:
338338

@@ -434,7 +434,7 @@ Cloud Security implies Network security and File system security. Network securi
434434

435435
#### Cluster Security
436436

437-
Tazama platform implements Cluster Security using the following:
437+
Tazama system implements Cluster Security using the following:
438438

439439
- RBAC Authorization [https://lextego.atlassian.net/wiki/spaces/ACTIO/pages/475332625/Security#Role-Based-Secure-Access](https://lextego.atlassian.net/wiki/spaces/ACTIO/pages/475332625/Security#Role-Based-Secure-Access)
440440

@@ -448,11 +448,11 @@ Tazama platform implements Cluster Security using the following:
448448

449449
#### Container Security
450450

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.
452452

453453
#### Code Security
454454

455-
Code Security in Tazama platform is implemented using the following:
455+
Code Security in Tazama system is implemented using the following:
456456

457457
- mTLS [https://lextego.atlassian.net/wiki/spaces/ACTIO/pages/475332625/Security#Linkerd-Service-Mesh](https://lextego.atlassian.net/wiki/spaces/ACTIO/pages/475332625/Security#Linkerd-Service-Mesh)
458458

@@ -505,7 +505,7 @@ Each secret type is used for a specific purpose and will be access only inside t
505505

506506
## Datastore
507507

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.
509509

510510
On top of the above network security measures, here are the following ways Tazama secures the datastores (Document stores, Graph and SQL):
511511

@@ -520,31 +520,31 @@ Whether connecting via a UI or through code, the connection (datastore specific
520520

521521
#### Secure connection to Document store (Druid)
522522

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.
524524

525525
#### Secure connection to Graph store (ArangoDB)
526526

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.
528528

529529
#### Authentication and Authorization in Document store (Druid)
530530

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).
532532

533533
#### Authentication and Authorization in Document store (ArangoDB)
534534

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).
536536

537537
#### Encryption at Rest (Druid)
538538

539539
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.
540540

541541
#### Encryption at Rest (ArangoDB)
542542

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
544544

545545
## Transient Data
546546

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:
548548

549549
- Logs
550550
- UI
@@ -557,14 +557,14 @@ Tazama logs are explicitly designed to not include any PII or Data elements in t
557557

558558
### UI
559559

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)
561561

562562
### Hacked code or config
563563

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:
565565

566566
- 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.
568568
- 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.
569569

570570
### Data History
@@ -628,7 +628,7 @@ Configuration for Tazama architecture products (Linkerd, Druid, ArangoDB, gRPC e
628628

629629
## Code
630630

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
632632

633633
- maintained in a public repo
634634
- 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
638638
- secure access, if done manually
639639
- file system security / encryption will need to be enabled
640640
- 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
642642

643643
## Role Based Secure Access
644644

@@ -661,9 +661,9 @@ For more details on RBAC Authorization using Kubernetes [https://kubernetes.io/d
661661

662662
***Here are the Access Controls that Tazama recommends for its various components:***
663663

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.
667667

668668
## Cryptographic Controls
669669

Product/Archive/Composition.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Composition
22

3-
The Tazama platform has the following implementation components:
3+
The Tazama system has the following implementation components:
44

55
1. Transaction Monitoring Service (TMS API)
66
2. Data Preparation (DP)

Product/Archive/Data-Collection-Design-Principles.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Data Collection Design Principles
22

3-
Here are the Data Collection Design Principles for the Tazama platform specifically for the Enrichment data:
3+
Here are the Data Collection Design Principles for the Tazama system specifically for the Enrichment data:
44

55
1. Get the right data
66
2. Get the data right

Product/Archive/Data-Models.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Data Models
22

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.
44

55
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).
66

Product/Archive/Data-Retention.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Data Retention
22

3-
Tazama platform has clearly defined Data Retention policy. At the same time, it is also configurable.
3+
Tazama system has clearly defined Data Retention policy. At the same time, it is also configurable.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Component Block Diagram (API's)
22

3-
The purpose is to provide a high-level view of the services (API’s) within the Tazama platform and a short description for each of the services.
3+
The purpose is to provide a high-level view of the services (API’s) within the Tazama system and a short description for each of the services.
44

55
![](../../../images/Untitled_Diagram.drawio.png)
66

7-
Figure 1 - High-level overview of the services (API) within the Tazama platform
7+
Figure 1 - High-level overview of the services (API) within the Tazama system

0 commit comments

Comments
 (0)