Changes for page eMagiz Security Guide
Last modified by Waria on 2026/07/23 09:35
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,6 +1,4 @@ 1 -{{container}} 2 -{{container layoutStyle="columns"}} 3 -((( 1 +{{container}}{{container layoutStyle="columns"}}((( 4 4 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! 5 5 6 6 Should you have any questions, please get in touch with academy@emagiz.com. ... ... @@ -24,12 +24,12 @@ 24 24 25 25 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. 26 26 27 -* 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. 28 -* 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). 29 -* 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). 30 30 31 -[[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--emagiz-architecture.png]] 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: Entries, exits, offramps, onramps, and routing flows. 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). 28 +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). 32 32 30 + 33 33 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: 34 34 35 35 ... ... @@ -36,11 +36,15 @@ 36 36 * Deploy agents can access the registry and can read the contents belonging to your eMagiz integration project only. 37 37 * Client runtimes can read specific flows within the registry as provided by the deploy agent to deploy the flows 38 38 * 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. 39 -* 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 moreinformationonthislookhere: [[eMagiz Deploy Agent>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz Runtime Management.intermediate-runtime-management-deploy-agent.WebHome||target="blank"]]37 +* 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. Learn more about this here: [[eMagiz Deploy Agent>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.eMagiz Runtime Management.intermediate-emagiz-runtime-management-emagiz-deploy-agent||target="blank"]] 40 40 * 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. 41 41 * Connections to the registry are always one-way SSL (encrypted) and all access is secured with a unique username/password combination. 42 42 * 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. 43 43 42 + 43 + 44 +[[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--definition-emagiz-model.png]] 45 + 44 44 === 3.2 Security Guidelines - Cloud === 45 45 46 46 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. ... ... @@ -102,11 +102,21 @@ 102 102 103 103 ===== 3.3.1.1 Rights for installing ===== 104 104 105 -To runyourruntimeson-premises,Dockerand theeMagizdeployagentneedtobeinstalled andupdatedwhenrequired.On Windows machines,youwillneed administrator rightstoperformtheseactions. On Linuxmachines,you need atleast sudo privilegesfor these actions.107 +To install a runtime on-premises, you need sufficient rights to execute (batch) programs. This means that the user needs administrator rights on that specific machine to perform the runtime installation correctly. 106 106 109 +===== 3.3.1.2 Rights for running ===== 110 + 111 +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. 112 +There are two options on this level: 113 + 114 +* 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. 115 +* 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. 116 + 117 +In Linux, the service will be running under the local system account as per default. 118 + 107 107 ==== 3.3.2 Cloud ==== 108 108 109 -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. 121 +In the eMagiz Cloud, the 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. 110 110 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. 111 111 112 112 Support engineers can see more to analyze problems on a lower level. ... ... @@ -119,7 +119,7 @@ 119 119 120 120 ===== 3.3.2.2 Rights for running ===== 121 121 122 -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.134 +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. 123 123 124 124 === 3.4 Data encryption during transport === 125 125 ... ... @@ -132,7 +132,10 @@ 132 132 [[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--data-orchestration.png]] 133 133 134 134 Data "in transit" is temporarily stored on an encrypted filesystem with the help of encryption algorithms. 135 -These algorithms ensure that even if third parties could get to the data on that encrypted filesystem, they won't be able to read the data. That way, the data is kept confidential. The [[runtime images release notes>>doc:Main.Release Information.Runtime Images.WebHome||target="blank"]] mention the currently enabled cipher suites in case they have changed. 147 +For the Cloud, eMagiz uses the AES-256 encryption algorithm. 148 +For on-premise runtime installations, eMagiz uses the AES-128 encryption algorithm. 149 +These algorithms ensure that even if third parties could get to the data on that encrypted filesystem, they won't be able to read the data. 150 +That way, the data is kept confidential. 136 136 137 137 Above, we mentioned that data "in transit" is temporarily stored. This can happen in two places: 138 138 ... ... @@ -144,11 +144,6 @@ 144 144 To ensure data integrity in the transport layer of eMagiz, it uses the TLS protocol. This means that all client-server communication is secured via TLS. In eMagiz, this is implemented as follows: The necessary certificates of the client(s) are trusted by the server, and the server is trusted by the client(s). The relevant information is stored in key stores and truststores that are unique per integration project (ll the integration configurations made to a single eMagiz instance spread across the ILM Phase from Capture to Manage). This ensures that data cannot be sent to other client projects or other environments within your project. 145 145 In other words, it prevents others from eavesdropping on your channels. eMagiz follows the standard guidelines when setting up TLS. Therefore, we ensure that the configured trusted certificate authority (CA) bundle that your messaging server uses to verify client connections is limited to only the CA used for your nodes, preferably an internally managed CA. 146 146 147 -{{info}} 148 -Note: eMagiz is secure by design and, therefore, advises against the use of Deep Packet Inspection (DPI) and SSL bridging. These technologies intercept, inspect and re-encrypt encrypted traffic, which can interfere with the certificate-based trust chains used by eMagiz. As a result, connections may be identified as a man-in-the-middle attempt and rejected. 149 -In case DPI and SSL bridging is required by your organization, at least network traffic between your runtimes and the eMagiz backend must be excluded for your eMagiz model to work properly. 150 -{{/info}} 151 - 152 152 === 3.5 External data exchange === 153 153 154 154 Because eMagiz provides the integration between two or more applications via the eMagiz platform, the point at which the data is interchanged between application and integration is a critical part of the integration in terms of security. ... ... @@ -170,15 +170,25 @@ 170 170 171 171 ==== 3.5.2 API Gateway ==== 172 172 173 -To secure the front end of the API Gateway in eMagiz rights can be assigned to users in User Management. Users are automatically created for systems integrated by the API pattern in the Portal. Next to that manual users can be added for external systems that interact with the eMagiz API Gateway. You can configure read and write rights per created operation in your model. If a user has insufficient rights for the requested action, they will receive a 401 Unauthorized. 174 -For the backend of the API Gateway, the same logic applies as stated above for messaging, which means that eMagiz supports the industry standard. Therefore, you as a user should confer with the external party about the correct method. 183 +A structure with roles and rights per role can be specified within the portal or via an external IDP to secure the front end of the API Gateway in eMagiz. For the backend of the API Gateway, the same logic applies as stated above for messaging, which means that eMagiz supports the industry standard. Therefore, you as a user should confer with the external party about the correct method. 175 175 176 -===== 3.5.2.1 Errorhandling=====185 +===== 3.5.2.1 Portal ===== 177 177 178 - Topreventtheerrormessageif itoccursissentstraight backtotheclient,youcanconfigure thefrontendof the API Gateway,sothatcorrectHTTP Statuscodesare givenbacktotheclient, includinga descriptivemessage.187 +As you can see in the picture shown below, the roles are defined so that the Read role can only access two integrations available for this specific API Gateway. If a client has insufficient rights, they will receive a 401 Unauthorized 179 179 180 - Formoreinformation on how this precisely can be configuredviatheeMagiz platform, please check thefollowing [[microlearning>>doc:Main.eMagizAcademy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-user-management||target="blank"]].189 +[[image:Main.Images.Fundamental.WebHome@fundamental-emagiz-security-guide--api-gateway-portal-feedback.png]] 181 181 191 +===== 3.5.2.2 (External) IDP ===== 192 + 193 +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. 194 +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. 195 +If the client has sufficient rights, the process continues. For example, if the client has insufficient rights, the client receives a 401 Unauthorized. 196 + 197 +===== 3.5.2.3 Error handling ===== 198 + 199 +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 + 201 +For more information on how this precisely can be configured via the eMagiz platform, please check the following [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-configure-roles-and-users||target="blank"]]. 182 182 ==== 3.5.3 Event Streaming ==== 183 183 184 184 Within the Event Streaming solution, eMagiz provides Event Streaming users, and topics can be created. ... ... @@ -186,12 +186,13 @@ 186 186 187 187 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. 188 188 189 -Apart from producing o n or consuming specific topics based on the ACL, users need toauthenticatethemselvesontheEventStreaming cluster using2-way SSL. Forthisthey needaclientcertificate(alsoknownasakeystore)andthetrustedservercertificate(alsoknownastruststore).209 +Apart from producing or consuming on specific topics based on the ACL, users also need to have a valid Keystore (containing the key and cert generated automatically) and a valid truststore (containing the CA certificate of the event streaming cluster) to produce or consume data. 190 190 191 191 These are all security measures to prevent third parties from getting unauthorized access to the data stored on the topics. 192 192 193 193 For more information on how this precisely can be configured via the eMagiz platform, please check the following [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Event Streaming.crashcourse-eventstreaming-user-management||target="blank"]]. 194 194 215 + 195 195 === 3.6 eMagiz iPaaS Portal === 196 196 197 197 The eMagiz portal provides access to users to manage their eMagiz integration configurations. It provides access to all the features to develop, deploy and manage integrations across Test, Acceptance, and Production environments. ... ... @@ -231,7 +231,7 @@ 231 231 232 232 Below are relevant items for the password policy in the eMagiz portal. 233 233 234 -* There is no expiry policy on the password - eMagiz has a Forg ot Password functionality.255 +* There is no expiry policy on the password - eMagiz has a Forget Password functionality. 235 235 * 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." 236 236 237 237 ==== 3.6.2 Integration project versioning & audit trails ==== ... ... @@ -250,31 +250,32 @@ 250 250 251 251 Monitoring your (Production) environment helps you monitor and detect deviations within your environment in near real-time. The ILM phase Manage provides access to errors logs generated in message processing by the platform and monitoring logs of the Cloud components and eMagiz runtimes. All errors and relevant logging is stored for a limited period (two weeks) within eMagiz for auditing or reporting purposes. Furthermore, notifications can be sent to people to alert them of a potential loss of data integrity. These alerts can contain a warning or the actual error that occurred. 252 252 253 -If specific messages are processed but result in validation errors or other errors, the message is sent to the error stack. The developer can view the actual message, including the content, to understand the error reported adequately. For example, the eMagiz store holds a specific transformation (Mask XSLT) that can mask all the fields of the XML message sent to the error stack. It can mask all the fields or only specific fields that contain sensitive data. Clients are requested to make this assessment per integration advised by the eMagiz Partner. 274 +If specific messages are processed but result in validation errors or other errors, the message is sent to the error stack. The developer can view the actual message, including the content, to understand the error reported adequately. For example, the eMagiz store holds a specific transformation (Mask XSLT) that can mask all the fields of the XML message sent to the error stack. It can mask all the fields or only specific fields that contain sensitive data. Clients are requested to make this assessment per integration advised by the eMagiz Partner. In future versions of eMagiz, particular attributes of entities in System Messages or CDM messages can be flagged, so the platform automatically takes care of this feature. 254 254 255 255 === 3.7 GDPR compliancy === 256 256 257 -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. 278 +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. 258 258 259 -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.280 +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. 260 260 261 261 === 3.8 Data retention === 262 262 263 -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.284 +eMagiz stores specific integration scenario data. Within the basic configuration, eMagiz only processes the data and doesn't keep any data from 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. 264 264 265 265 ==== 3.8.1 Messaging ==== 266 266 267 -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. 268 -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. 288 +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. 269 269 290 +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. 270 270 271 -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. 272 - 273 273 ==== 3.8.2 Event Streaming ==== 274 274 275 -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. 276 -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 294 +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. 277 277 296 +* 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. 297 +* 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. 298 +* These backup files are stored in the object storage in the same region where the service virtual machines are located. 299 + 278 278 ==== 3.8.3 API Gateway ==== 279 279 280 280 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. ... ... @@ -283,7 +283,6 @@ 283 283 284 284 For more information on the conceptual ideas behind data management within the eMagiz platform, you can look at this [[fundamental>>doc:Main.eMagiz Academy.Fundamentals.fundamental-traceability-in-emagiz||target="blank"]]. For more concrete information on how to implement it within an eMagiz flow you could check out this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-data-sink||target="blank"]] and this [[microlearning>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-long-term-archiving||target="blank"]]. All the information within the data sink and the long-term archiving solution is kept within the same VPC in the Cloud and can only be accessed by authorized parties. 285 285 286 - 287 287 === 3.9 Compliancy === 288 288 289 289 * eMagiz is currentlty ISO-27001 certified. ... ... @@ -300,11 +300,10 @@ 300 300 == 4. Key takeaways == 301 301 302 302 * Protecting your data is a joint responsibility between eMagiz and you 303 -* The re gistrycontaining deployable flowsisread-only for clients324 +* The repository is read-only for clients 304 304 * Data in the Cloud is kept within your VPC 305 305 * The portal is behind an MFA check 306 306 307 - 308 308 == 5. Suggested additional readings == 309 309 310 310 * [[Fundamental (Navigation)>>doc:Main.eMagiz Academy.Fundamentals.WebHome||target="blank"]] ... ... @@ -315,7 +315,7 @@ 315 315 *** [[Security - Add MFA (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-security-add-mfa.WebHome||target="blank"]] 316 316 *** [[Portal Security - Basic (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Platform.crashcourse-platform-manage-portal-security-basic||target="blank"]] 317 317 ** [[Crash Course API Gateway (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]] 318 -** [[ APIUserManagement(Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-user-management||target="blank"]]338 +** [[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"]] 319 319 ** [[Crash Course Event Streaming (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Event Streaming.WebHome||target="blank"]] 320 320 ** [[User Management (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course Event Streaming.crashcourse-eventstreaming-user-management||target="blank"]] 321 321 * [[Novice Level (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Novice.WebHome||target="blank"]] ... ... @@ -325,10 +325,4 @@ 325 325 ** [[Data Management (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.WebHome||target="blank"]] 326 326 *** [[Data Sink (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-data-sink||target="blank"]] 327 327 *** [[Long Term Archiving (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Advanced Level.Data Management.advanced-data-management-long-term-archiving||target="blank"]] 328 -))) 329 - 330 -((( 331 -{{toc/}} 332 -))) 333 -{{/container}} 334 -{{/container}} 348 +)))((({{toc/}}))){{/container}}{{/container}}