Changes for page eMagiz Security Guide
Last modified by Waria on 2026/06/04 13:44
From version 37.1
edited by Erik Bakker
on 2024/08/08 08:41
on 2024/08/08 08:41
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. ebakker1 +XWiki.waria - Content
-
... ... @@ -1,5 +1,5 @@ 1 1 {{container}}{{container layoutStyle="columns"}}((( 2 - in this fundamental, we will delve into the security perspective of the eMagiz landscape. We'll explore the cloud setup, data protection, and more to understand the role security plays in each part of the eMagiz architecture. Let's dive in!2 +In this fundamental, we will delve into the security perspective of the eMagiz landscape. We'll explore the cloud setup, data protection, and more to understand the role security plays in each part of the eMagiz architecture. Let's dive in! 3 3 4 4 Should you have any questions, please get in touch with academy@emagiz.com. 5 5 ... ... @@ -10,33 +10,39 @@ 10 10 == 2. Key concepts == 11 11 12 12 * Protecting your data is a joint responsibility between eMagiz and you 13 -* The re pository is read-only for clients13 +* The registry containing deployable flows is read-only for clients 14 14 * Data in the Cloud is kept within your VPC 15 15 * The portal is behind an MFA check 16 16 17 17 == 3. eMagiz Security Guide == 18 18 19 -In this fundamental, we will zoom in on how the various parts of the eMagiz landscape can be viewed from a Security perspective. We will look at the Cloud, on-premises, data within eMagiz, external communication, and the portal during our journey. After this journey, you should have a solid understanding of what role security plays in each of the parts of the eMagiz architecture. Note that protecting your data is a joint responsibility between eMagiz and you. This fundamental aims t oclarify the security measures eMagiz has taken in the eMagiz platform. This way, you can assess the eventual additional steps you need to take to ensure that the eMagiz service cooperates securely with the rest of your application and integration landscape.19 +In this fundamental, we will zoom in on how the various parts of the eMagiz landscape can be viewed from a Security perspective. We will look at the Cloud, on-premises, data within eMagiz, external communication, and the portal during our journey. After this journey, you should have a solid understanding of what role security plays in each of the parts of the eMagiz architecture. Note that protecting your data is a joint responsibility between eMagiz and you. This fundamental aims at clarifying the security measures eMagiz has taken in the eMagiz platform. This way, you can assess the eventual additional steps you need to take to ensure that the eMagiz service cooperates securely with the rest of your application and integration landscape. 20 20 21 21 === 3.1 Architectural setup eMagiz === 22 22 23 23 eMagiz consists of various components communicating to develop the process layer and subsequently run the message layer as secure and stable as possible for our customers. 24 24 25 -1. In the eMagiz integration project, various flows are created that work together to realize the integration. The different types are shown on the top of the picture below: Entry, Exits, Offramps, onramps, and routing flows. 26 -2. These flows are then deployed together with a specific build number (contains framework components to make these flows work) into a runtime (java based application container). 25 + 26 +1. In the eMagiz integration project, various flows are created that work together to realize the integration. The different types are shown on the top of the picture below. 27 +2. Your customized flows are combined with a base image (which contains framework components to make the flows work) and are deployed into a runtime (java-based application container). 27 27 3. These runtimes run on Cloud machines that contain Cloud templates (all required components to make the Cloud machine operational such as OS, Java runtime version, and more). 28 28 29 -The top part of the picture depicts the eMagiz repository. All relevant (open-source) libraries needed to run flows on a connector are stored within this repository. 30 30 31 -To prevent unauthorized access to this repository, the following measures have been taken 32 32 33 -* Client runtimes can access the repository via a username/password combination through a one-way SSL connection (encrypted) and read the contents of the repository 34 -* eMagiz developers that need to upload bundles can access the repository through a one-way SSL connection (encrypted) 35 -* A bitbucket pipeline will be created soon to enable automatic updates. This data pipeline will also need a unique username/password combination along with the fact that the connection itself is a one-way SSL connection (encrypted) 36 -* The repository is read-only for clients. This means that even if someone gets their hands on a username/password combination, they do not have sufficient rights to alter anything in the repository. They can only read the data that is kept in the repository. 32 +Your flows are stored within a registry so deployments can be managed efficiently. To prevent unauthorized access to this repository, the following measures have been taken: 37 37 38 -[[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--definition-emagiz-model.png]] 39 39 35 +* Deploy agents can access the registry and can read the contents belonging to your eMagiz integration project only. 36 +* Client runtimes can read specific flows within the registry as provided by the deploy agent to deploy the flows 37 +* When running your eMagiz integration project in the cloud, security during communication between eMagiz and the registry is taken care of by the eMagiz cloud. 38 +* When running your eMagiz integration project on-premises, you will have to make sure that your server is running Docker and the eMagiz deploy agent so the server can access the registry successfully and securely. For more information on this look here: [[eMagiz Deploy Agent>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz Runtime Management.intermediate-runtime-management-deploy-agent.WebHome||target="blank"]] 39 +* A bitbucket pipeline can access the registry to update the provided base image that is needed to run all your flows. This pipeline cannot access your flows, only the libraries used to build your flows. 40 +* Connections to the registry are always one-way SSL (encrypted) and all access is secured with a unique username/password combination. 41 +* As mentioned above, the registry is read-only for agents and client runtimes. This means that even if someone gets their hands on a username/password combination, they do not have sufficient rights to alter anything in the registry. They can only read the data that is kept in the registry. 42 + 43 + 44 +[[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--emagiz-architecture.png]] 45 + 40 40 === 3.2 Security Guidelines - Cloud === 41 41 42 42 In this section, we take a closer look at the cloud setup in general. Here we will focus on high-level security measurements because we already specified security measurements at the data level. ... ... @@ -98,21 +98,11 @@ 98 98 99 99 ===== 3.3.1.1 Rights for installing ===== 100 100 101 -To installaruntime on-premises,youneedsufficientrightsto execute(batch)programs.This meansthat theuserneedsadministrator rights onthatspecificmachine to performtheruntimeinstallationcorrectly.107 +To run your runtimes on-premises, Docker and the eMagiz deploy agent need to be installed and updated when required. On Windows machines, you will need administrator rights to perform these actions. On Linux machines, you need at least sudo privileges for these actions. 102 102 103 -===== 3.3.1.2 Rights for running ===== 104 - 105 -In Windows, a service account is needed to run a Windows Service (in this case, the runtime you have installed). This service account is different compared to the user that does the installing of the runtime. 106 -There are two options on this level: 107 - 108 -* Use the local system account. This account has sufficient rights to run the service and can therefore be used for everything: less work to configure, more impact on data integrity when the account gets compromised. 109 -* Use a specific service account per runtime, limiting the power of users to a particular runtime making you less vulnerable if this account gets compromised. 110 - 111 -In Linux, the service will be running under the local system account as per default. 112 - 113 113 ==== 3.3.2 Cloud ==== 114 114 115 -In the eMagiz Cloud, theaccess is restricted to those who have a legitimate reason to access it based on the SLA level agreements between customers and eMagiz. This means support engineers, consignment employees, and your model owner have access to your specific cloud setup.111 +In the eMagiz Cloud, access is restricted to those who have a legitimate reason to access it based on the SLA level agreements between customers and eMagiz. This means support engineers, consignment employees, and your model owner have access to your specific cloud setup. 116 116 This access is, per role, furthermore limited. This means that consignment employees and model owners can only see the logging of the runtimes on the machine and the ability to start/stop machines. 117 117 118 118 Support engineers can see more to analyze problems on a lower level. ... ... @@ -125,7 +125,7 @@ 125 125 126 126 ===== 3.3.2.2 Rights for running ===== 127 127 128 -The VPC in the Cloud runs on a Linux environment. Therefore the same logic applies as specified above for Linux systems. For example, in Linux, the service will run under the local system account as default. 124 +The VPC in the Cloud runs on a Linux environment. Therefore, the same logic applies as specified above for Linux systems. For example, in Linux, the service will run under the local system account as default. 129 129 130 130 === 3.4 Data encryption during transport === 131 131 ... ... @@ -182,12 +182,6 @@ 182 182 183 183 [[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--api-gateway-portal-feedback.png]] 184 184 185 -===== 3.5.2.2 (External) IDP ===== 186 - 187 -Apart from configuring the roles, users, and rights within the portal itself, it is also possible to hook the API Gateway up to an (external) IDP. 188 -By communicating with this IDP via the OAuth2.0 protocol, a check is done every time a client calls a specific operation to see whether that client has sufficient rights to access the operation. 189 -If the client has sufficient rights, the process continues. For example, if the client has insufficient rights, the client receives a 401 Unauthorized. 190 - 191 191 ===== 3.5.2.3 Error handling ===== 192 192 193 193 To prevent the error message if it occurs is sent straight back to the client, you can configure the front end of the API Gateway, so that correct HTTP Status codes are given back to the client, including a descriptive message. ... ... @@ -200,7 +200,7 @@ 200 200 201 201 Only users with sufficient rights in the Deploy phase of eMagiz can add users, topics and change the ACL entries specific to the Event Streaming cluster. 202 202 203 -Apart from producing or consuming onspecific topics based on the ACL, usersalsoneed to havea valid Keystore(containing thekeyand certgeneratedautomatically)andavalidtruststore(containingtheCAcertificate ofthe eventstreaming cluster)toproduceor consume data.193 +Apart from producing on or consuming specific topics based on the ACL, users need to authenticate themselves on the Event Streaming cluster using 2-way SSL. For this they need a client certificate (also known as a keystore) and the trusted server certificate (also known as truststore). 204 204 205 205 These are all security measures to prevent third parties from getting unauthorized access to the data stored on the topics. 206 206 ... ... @@ -246,7 +246,7 @@ 246 246 247 247 Below are relevant items for the password policy in the eMagiz portal. 248 248 249 -* There is no expiry policy on the password - eMagiz has a Forg et Password functionality.239 +* There is no expiry policy on the password - eMagiz has a Forgot Password functionality. 250 250 * Password must be 8 - 20 characters long, cannot contain white spaces, and must contain at least one digit, one upper case, and one lower case letter." 251 251 252 252 ==== 3.6.2 Integration project versioning & audit trails ==== ... ... @@ -269,28 +269,27 @@ 269 269 270 270 === 3.7 GDPR compliancy === 271 271 272 -Our privacy policy is mentioned on this page: https://www.emagiz.com/privacy-policy/. The eMagiz platform holds for registered users only the username and password. The user name is the company email address, and no other data is kept on a personal user level.262 +Our privacy policy is mentioned on this page: https://www.emagiz.com/privacy-policy/. The eMagiz platform holds for registered users only the username and password. The username is the company email address, and no other data is kept on a personal user level. 273 273 274 -The eMagiz portal at https://my.emagiz.com does not store any cookies. Instead, there are functional items only kept in the user's session data once active in the eMagiz portal. Specific logs are created in the eMagiz portal that displays operational issues a user has in using the portal. These logs are only viewable by eMagiz users and contain no personal data.264 +The eMagiz portal at https://my.emagiz.com does not store any cookies. Instead, there are functional items only kept in the user's session data once active in the eMagiz portal. Specific logs are created in the eMagiz portal that displays operational issues a user has in using the portal. These logs are only viewable by eMagiz administrators and contain no personal data. 275 275 276 276 === 3.8 Data retention === 277 277 278 - eMagiz stores specific integration scenario data.Within the basic configuration, eMagiz only processes the data and doesn't keep any datafrom these message streams. All messages are treated the same way, and the platform doesn't distinguish between regular, personal, or sensitive data. Clients are requested to make such assessments and take precautionary measures. Below we have detailed the parts of the eMagiz offering, per integration pattern, in which data is held temporarily. Afterward, we turn our focus to our data management offerings in which we store data for a longer period to support the client's needs.268 +Within the basic configuration, eMagiz only processes the data and does not keep any data. All messages are treated the same way, and the platform doesn't distinguish between regular, personal, or sensitive data. Clients are requested to make such assessments and take precautionary measures. Below we have detailed the parts of the eMagiz offering, per integration pattern, in which data is held temporarily. Afterward, we turn our focus to our data management offerings in which we store data for a longer period to support the client's needs. 279 279 280 280 ==== 3.8.1 Messaging ==== 281 281 282 -In the integrations where the Messaging pattern is selected, the entry connectors (runtimes that receive or pull messages) are equipped with a small temporary database to ensure the letters are preserved in this phase. In case of brief downtime of consecutive components where these messages are processed, these messages are held. This is one part of the Guaranteed Delivery mechanism in eMagiz. Messages are encrypted (AES-128) and stored until the message is processed * the database can only be thoroughly cleaned if needed by removing the data file of this database. Only users that have sufficient permissions can restart. Depending on input received and throughput achieved by polling the database, this can range between seconds and minutes that a message is kept in the database. 272 +In the integrations where the Messaging pattern is selected, the entry connectors (runtimes that receive or pull messages) are equipped with a small temporary database to ensure the messages are preserved in this phase. In case of brief downtime of consecutive components where these messages are processed, these messages are held. This is one part of the Guaranteed Delivery mechanism in eMagiz. Messages are encrypted (AES-128) and stored until the message is processed. Depending on input received and throughput achieved by the poller, a message is kept between seconds and minutes in the database. 273 +The database can only be thoroughly cleaned if needed by removing the data file of this database. Only users that have sufficient permissions can execute this action. 283 283 284 -The eMagiz JMS component manages the queues between the different steps in the integration flow. All data within these queues are encrypted via an encryption algorithm (AES-256), and data will only be retained here until the next step in the process is ready to consume the data. 285 285 276 +The eMagiz JMS server manages the queues between the different steps in the integration flow. All data within these queues are encrypted via an encryption algorithm (AES-256), and data will only be retained here until the next step in the process is ready to consume the data. 277 + 286 286 ==== 3.8.2 Event Streaming ==== 287 287 288 -In the case of event streaming, data is temporarily kept on the topic within the event streaming cluster. As specified above, access to a topic is secured with the help of the ACL. This is a safeguard against a loss of integrity of data. Regarding Event Streaming, data is retained for a more extended period (often days) to ensure that consumers have sufficient time to consume the data before it is deleted. This does mean that unauthorized third parties can not easily access the data on these topics. In addition, authorized users can edit the retention size and retention times on the topic level. 280 +In the case of event streaming, data is temporarily kept on the topic within the event streaming cluster. As specified above, access to a topic is secured with the help of the ACL. This is a safeguard against a loss of integrity of data. Regarding Event Streaming, data is retained for a more extended period (between 2 and 7 days, depending on configuration and license) to ensure that consumers have sufficient time to consume the data before it is deleted. 281 +For details on how your data is secured during retention, such as encryption and back-up policies, we refer you to the security policies of our provider KPN DSH: https://policy-public.kpnnet.org/ksp/explore/ksp-taxonomy/560104 289 289 290 -* Service instances and the underlying VMs use full volume encryption using LUKS with a randomly generated ephemeral key per each instance and volume. The key is never re-used and will be trashed at the destruction of the instance, so there's a natural key rotation with roll-forward upgrades. We use the LUKS default mode aes-xts-plain64:sha256 with a 512-bit key. 291 -* Backups are encrypted with a randomly generated key per file. These keys are encrypted with RSA key-encryption key-pair and stored in the header section of each backup segment. The file encryption is performed with AES-256 in CTR mode with HMAC-SHA256 for integrity protection. The RSA key pair is randomly generated for each service. The key lengths are 256-bit for block encryption, 512-bit for integrity protection, and 3072-bits for the RSA key. 292 -* These backup files are stored in the object storage in the same region where the service virtual machines are located. 293 - 294 294 ==== 3.8.3 API Gateway ==== 295 295 296 296 At this moment, there is no data stored in eMagiz API Gateways configurations. Instead, backend flows that connect to the APIs being called use the same queuing mechanism as mentioned in the previous section around Messaging. ... ... @@ -315,7 +315,7 @@ 315 315 == 4. Key takeaways == 316 316 317 317 * Protecting your data is a joint responsibility between eMagiz and you 318 -* The re pository is read-only for clients307 +* The registry containing deployable flows is read-only for clients 319 319 * Data in the Cloud is kept within your VPC 320 320 * The portal is behind an MFA check 321 321 ... ... @@ -325,14 +325,18 @@ 325 325 ** [[eMagiz Cloud (Explanation)>>doc:Main.eMagiz Academy.Fundamentals.fundamental-emagiz-cloud-inner-workings||target="blank"]] 326 326 ** [[Traceability (Explanation)>>doc:Main.eMagiz Academy.Fundamentals.fundamental-traceability-in-emagiz||target="blank"]] 327 327 * [[Crash Courses (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]] 328 -* [[Novice Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]] 317 +** [[Crash Course Platform (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.WebHome||target="blank"]] 318 +*** [[Security - Add MFA (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-security-add-mfa.WebHome||target="blank"]] 319 +*** [[Portal Security - Basic (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-manage-portal-security-basic||target="blank"]] 320 +** [[Crash Course API Gateway (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]] 321 +** [[Configure Roles and Users (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-configure-roles-and-users||target="blank"]] 322 +** [[Crash Course Event Streaming (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Event Streaming.WebHome||target="blank"]] 323 +** [[User Management (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Event Streaming.crashcourse-eventstreaming-user-management||target="blank"]] 324 +* [[Novice Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Novice.WebHome||target="blank"]] 329 329 ** [[eMagiz Cloud Management (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.eMagiz Cloud Management.WebHome||target="blank"]] 330 330 *** [[Cloud Templates Explained (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.eMagiz Cloud Management.novice-emagiz-cloud-management-cloud-templates-explained||target="blank"]] 331 - 332 -[[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-configure-roles-and-users||target="blank"]] 333 -[[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Event Streaming.crashcourse-eventstreaming-user-management||target="blank"]] 334 -[[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-security-add-mfa.WebHome||target="blank"]] 335 -[[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-data-sink||target="blank"]] 336 -[[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-long-term-archiving||target="blank"]] 337 -[[microlearning>>doc:Main.eMagiz Academy.Fundamentals.fundamental-traceability-in-emagiz||target="blank"]] 327 +* [[Advanced Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.WebHome||target="blank"]] 328 +** [[Data Management (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.WebHome||target="blank"]] 329 +*** [[Data Sink (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-data-sink||target="blank"]] 330 +*** [[Long Term Archiving (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-long-term-archiving||target="blank"]] 338 338 )))((({{toc/}}))){{/container}}{{/container}}