<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Michal Šrámek</title>
    <description>The latest articles on DEV Community by Michal Šrámek (@sramek5).</description>
    <link>https://dev.to/sramek5</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1405341%2Ff9ce2f4e-c864-45e4-9b82-a4cbe7064a6c.jpeg</url>
      <title>DEV Community: Michal Šrámek</title>
      <link>https://dev.to/sramek5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sramek5"/>
    <language>en</language>
    <item>
      <title>The Magic of SAP: A Comprehensive Guide for Begginers</title>
      <dc:creator>Michal Šrámek</dc:creator>
      <pubDate>Wed, 26 Jun 2024 21:10:50 +0000</pubDate>
      <link>https://dev.to/sramek5/the-magic-of-sap-a-comprehensive-guide-for-begginers-19jc</link>
      <guid>https://dev.to/sramek5/the-magic-of-sap-a-comprehensive-guide-for-begginers-19jc</guid>
      <description>&lt;p&gt;In the process of our IT life, each of us will surely encounter the word SAP one day. But what is actually SAP and how does it actually work? The official vendor documentation is clear on this and defines SAP as following: &lt;code&gt;SAP is one of the world’s leading producers of software for the management of business processes.&lt;/code&gt; That is not entirely clear. Even a literal German translation - &lt;strong&gt;Systemanalyse Programmentwicklung&lt;/strong&gt; - will not help us too much.&lt;/p&gt;

&lt;p&gt;SAP is basicly collection of Systems, Applications, and Products in Data Processing. It is provider of enterprise software solutions designed to enhance business processes and efficiency. One of SAP's key products is so-called SAP ECC (i.e. ERP Central Component), with extra indication R3, which refers to its architecture based on Real-Time data processing and a three-tier structure. &lt;/p&gt;

&lt;p&gt;This architecture includes the presentation layer, application layer, and database layer, working together to provide robust, scalable, and flexible Enterprise Resource Planning (ERP) solutions that support a wide range of business functions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8svbb4boy6te3texduj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8svbb4boy6te3texduj.png" alt="SAP R3 Architecture" width="800" height="793"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Presentation Layer
&lt;/h2&gt;

&lt;p&gt;The presentation layer in SAP R3 architecture is crucial for facilitating user interaction with the system. This layer provides input capabilities for users to manipulate the system and output functionalities for generating results based on user actions. The primary interface for users interacting with SAP applications is the SAP GUI, which is installed on individual machines. Through SAP GUI, users can access various SAP modules and execute transactions, run reports, and perform data entry tasks. The presentation layer ensures a seamless and intuitive user experience, translating complex backend processes into comprehensible visual elements, thereby enhancing user productivity and system usability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Layer
&lt;/h2&gt;

&lt;p&gt;The application layer serves as the core of the system, processing business logic and managing communication between the presentation and database layers. A key component of this layer is the &lt;strong&gt;Web Dispatcher&lt;/strong&gt;, which acts as a critical gateway between the Internet and SAP systems. It handles HTTP(s) requests, balances the load across multiple SAP NetWeaver application servers, and enhances system security by filtering URLs and supporting SSL encryption. The Web Dispatcher is compatible with both pure ABAP (high-level programming language cretaed by SAP) and Java systems.&lt;/p&gt;

&lt;p&gt;Within the application layer, various &lt;strong&gt;ABAP Processes&lt;/strong&gt; are essential for efficient system operations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dialog Process (DIA):&lt;/strong&gt; Manages the interaction between the user and the system, handling immediate transaction requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background Process (BGD):&lt;/strong&gt; Executes long-running or scheduled tasks that do not require real-time user interaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spool Process (SPO):&lt;/strong&gt; Manages print requests and the overall printing process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Update Process (UDP):&lt;/strong&gt; Responsible for updating data in the database, ensuring that changes are correctly saved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enqueue Process (ENQ):&lt;/strong&gt; Handles the locking of data to maintain consistency and integrity during concurrent access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Additionally, the application layer includes crucial &lt;strong&gt;ABAP Services&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Message Service:&lt;/strong&gt; Ensures load balancing across different SAP server instances, routing and delivering messages efficiently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enqueue Replication Server (ERS):&lt;/strong&gt; Maintains a synchronized replica of the lock table on a secondary NetWeaver server, ensuring data consistency and enabling automatic failover in the event of a primary server failure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Together, these components and services ensure that the application layer functions effectively, supporting robust and reliable enterprise resource planning for businesses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Database Layer
&lt;/h2&gt;

&lt;p&gt;The database layer is responsible obviously for storing and retrieving data, forming the foundation of the entire system. While SAP does not provide its own database system, it supports integration with leading relational database management systems (RDBMS) such as Oracle, DB2, and HANA. HANA, a multi-model database, is particularly notable for its ability to store data in memory rather than on a disk, which significantly enhances processing speeds compared to traditional database management systems.&lt;/p&gt;

&lt;p&gt;HANA's integration includes High Availability and Disaster Recovery (HA/DR) capabilities through so-called HANA System Replication (HSR). This mechanism ensures high availability by automatically switching to a standby host in case of a primary host failure. It uses &lt;em&gt;synchronous&lt;/em&gt; data replication to maintain data consistency between the primary and standby hosts, thus minimizing downtime and ensuring data integrity.&lt;/p&gt;

&lt;p&gt;This layer's robustness is critical for the overall performance of the SAP system, as it handles large volumes of transaction data, supports complex queries, and ensures data integrity and security. The database layer's compatibility with top-tier relational database management system (RDBMS) and advanced features like HANA's in-memory storage and HSR replication make it a powerful component of the SAP ECC R3 architecture, enabling businesses to process and analyze data with exceptional speed and reliability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trivia
&lt;/h2&gt;

&lt;p&gt;The following abbreviations are also associated with SAP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PAS&lt;/strong&gt; = Primary Application Server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AAS&lt;/strong&gt; = Additional Application Server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ASCS&lt;/strong&gt; = ABAP Central Services (core of the SAP application service)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The differences between PAS and AAS: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The PAS contains the ASCS, but an AAS does not. &lt;/li&gt;
&lt;li&gt;In a system, there is only one PAS, but there can be multiple AASs. The number depends on the service requirements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;SAP stands globally as a leading provider of enterprise software solutions, helping organizations streamline and optimize their business processes. With its robust architecture and integration capabilities, SAP enables efficient management of complex operations, enhancing productivity and decision-making. SAP's adaptability with various database systems and its advanced features ensure it remains a vital tool for businesses aiming for growth and operational excellence.&lt;/p&gt;

</description>
      <category>sap</category>
      <category>erp</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Fortress GitHub: Building a Secure Organization</title>
      <dc:creator>Michal Šrámek</dc:creator>
      <pubDate>Mon, 08 Apr 2024 07:43:58 +0000</pubDate>
      <link>https://dev.to/sramek5/fortress-github-building-a-secure-organization-4ke8</link>
      <guid>https://dev.to/sramek5/fortress-github-building-a-secure-organization-4ke8</guid>
      <description>&lt;p&gt;Authentication security on the GitHub platform is a key aspect of protecting corporate data and securing user accounts. Usually, we rely not only on standard methodologies (passwords, 2FA) but also on the significant benefits of centralized access control and easy integration with an external identity service. In this way, we could contribute to an overall increase in the level of security. SAML (Security Assertion Markup Language) is a standard for exchanging authentication and authorization data between security domains, often used for Single Sign-On (SSO) across web applications. In the context of GitHub, it's important as it allows centralized access control and easy integration with external identity services, enhancing overall security.&lt;/p&gt;

&lt;p&gt;Before implementing SAML protocol on the GitHub platform, several key requirements should be met.&lt;/p&gt;

&lt;h2&gt;
  
  
  Regions Separated by Root Teams
&lt;/h2&gt;

&lt;p&gt;In an international organizations integrated inside one big GitHub Enteprise, it is important to separate the different regions (resources) with a specific team that will have a root responsibility.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each unique root team should have the opportunity to participate in decision-making (global PR related to the region) concerning the specifics of the region (technology, business, etc.).&lt;/li&gt;
&lt;li&gt;Other development teams corresponding to their region should be always nested within a root team and should not exist outside their team (including users).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2yf5nz7v6lphdxjbdml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2yf5nz7v6lphdxjbdml.png" alt="GitHub Root Teams" width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;External partners (helping with migrations, quality assesment etc.) should be in the namesake group and their access should be explicit, limited, and valid only for the repository invitation (see below).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltz6mwk4cddafv0che15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltz6mwk4cddafv0che15.png" alt="GitHub Externals Partners" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Disabling Outside Collaborators
&lt;/h2&gt;

&lt;p&gt;It is practically unacceptable for anyone with admin rights in a repository to have permission to add Outside Collaborators to that repository. Disabling these Outside Collaborators on an organization-wide level is an important step toward securing and protecting the organization's sensitive data and resources. This measure will minimize the risk of unauthorized access and misuse of information by those outside the organization.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There should be no Outside Collaborators at the organizational level. Any potential Outsiders must go through internal company HR system to gain access in the same way as internal members.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz7aefbxct2042nuklpyq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz7aefbxct2042nuklpyq.png" alt="Outside Collaborators" width="510" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Related: Outside Collaborators should not be able to request access to GitHub or OAuth applications to access any organization and its resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Base Permission for Organization
&lt;/h2&gt;

&lt;p&gt;At the GitHub organization level, it is important to correctly select the Base Permissions of members. The most commonly, the &lt;strong&gt;Read&lt;/strong&gt; method is selected (users are allowed to clone and download repositories). The permissions in GitHub, like the RBAC policy of any other system, should be as strict as possible (especially if the company is in the Cloud, where is applied shared responsibility) and should only provide the permissions that are necessary for each specific user. An important step to strengthen security in a multi-region approach is to change the organizational base permissions from &lt;strong&gt;Read&lt;/strong&gt; to &lt;strong&gt;No permissions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This step eliminates the &lt;strong&gt;implicit&lt;/strong&gt; access of all members to the organization and replaces it with &lt;strong&gt;explicit&lt;/strong&gt; access at the repository level. Support for explicit access allows the organization to flexibly set and manage access rights in accordance with security policies. The organization gains greater control over who has access to individual resources and minimizes the risk of unauthorized access, data misuse, and reduces the risk of security incidents.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users are not be blocked from collaborating in this way, they will need just add/remove and fine-tune the correct access of other teams to their repositories (see below).&lt;/li&gt;
&lt;li&gt;The principle of &lt;u&gt;least privilege&lt;/u&gt; is respected.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0od648ycgoi9vqd4dq5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0od648ycgoi9vqd4dq5a.png" alt="Base Permissions" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More information is provided by &lt;a href="https://cycode.com/blog/github-permissions-for-maximum-security/"&gt;this article&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Collaboration at Team Level
&lt;/h2&gt;

&lt;p&gt;Collaborating on GitHub in teams is an organized approach to working on projects. Teams allow for grouping members (using other teams), managing permissions, communicating, and sharing responsibilities. It also enhances transparency, as all team members have access to the same resources and information. The team structure should be designed to reflect the organization's structure and business processes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Teams are repository owners, not individuals (&lt;em&gt;common security goal&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Collaboration and approval of PR should be at the team level, not on individual level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hmno0z2z9auzlqqxxk2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hmno0z2z9auzlqqxxk2.png" alt="Collaboration" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The creation of Ad Hoc Teams should be prohibited at the organization-wide level. Every team that needs to exist in a GitHub organization should be first processed through internal company system (e.g. Active Directory). Such a change should be then reflected in GitHub.&lt;/li&gt;
&lt;li&gt;Once SAML is enforced, GitHub will automatically synchronize team members with the corresponding group structure according to used IdP.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Repository Protection
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Repository Creation
&lt;/h3&gt;

&lt;p&gt;The process of creating a repository is the first step to organizing and sharing code and projects with the team. It is important not only to set permissions correctly to ensure that only appropriate team members have access to the repository (see above), but also to implement a policy. There are currently 3 types of repositories that can be created in the enterprise version of GitHub:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;span&gt;&lt;strong&gt;Private (visible to organization members with permission).&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;strong&gt;Internal (visible to all members of the enterprise organization = among other regions).&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;strong&gt;Public (visible to anyone from the internet).&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Private&lt;/strong&gt;&lt;/span&gt; repositories are a key part of maintaining the integrity of the internal development process and should be established as a &lt;strong&gt;matter of priority&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;All members of the Enterprise organization have access basically to all repositories created as &lt;span&gt;&lt;strong&gt;Internal&lt;/strong&gt;&lt;/span&gt;. Permissions can be changed within the Enterprise, it is not easy to assess at Organisation level who all has such permissions. Therefore, it is worth considering whether to create Internal repositories and the responsibility should belong to each team.&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;Public&lt;/strong&gt;&lt;/span&gt; repositories should be gradually banned at the level of the GitHub Enterprise. A separate organization should be created within GitHub Enterprise, where a public license and policy should be properly created to manage such repositories. Thus, in exceptional and justified cases, a &lt;span&gt;&lt;strong&gt;Public&lt;/strong&gt;&lt;/span&gt; repository may be created, but outside of the each regions in dedicated GitHub Organization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8221yrijvo668vy3cl1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8221yrijvo668vy3cl1.png" alt="Repository Creation" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Repository Default Branch
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Default Branch Protection Rules&lt;/strong&gt; are essential to ensure the integrity and security of code in various forms of shared repositories. The rules allow us to define levels of protection, including mandatory rules for change approval or protection against direct upload to a branch that is to be used exclusively for deployment (&lt;a href="https://trunkbaseddevelopment.com/"&gt;Trunk Based Development&lt;/a&gt;) to the Cloud.&lt;/p&gt;

&lt;p&gt;Because automation is a key part of the development process, it is important to ensure that the rules are set correctly and that the automation is properly configured. It is possible to use GitHub Actions to create PRs. However, this also has some risks and therefore in all repositorie should be required at least 1 person for approval of the PR → For this reason, CODEOWNERS should be properly defined in each repository to prevent automatic merges to the release branch without the repository owner's knowledge.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp262otrv1sv9hxkeip9n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp262otrv1sv9hxkeip9n.png" alt="Branch Protection" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code owners are always a team in the organization (see above), or even a team other than the one that owns the repository can be defined. However, such a team must then have WRITE rights to the repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Actions may create PRs, but they may not automatically approve them.&lt;/li&gt;
&lt;li&gt;There should be a CODEOWNERS file in each repository.&lt;/li&gt;
&lt;li&gt;Gradually the protection of the default (release) branch should be enforced by introducing the Organizational &lt;strong&gt;Ruleset&lt;/strong&gt; and monitored scraping the &lt;strong&gt;Audit Logs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The implementation of the SAML protocol on the GitHub platform is a key step in enhancing the security of the organization. However, it is important to ensure that the organization's structure and processes are properly designed and that the necessary security measures are in place. The organization should be structured in such a way that it reflects the business processes and that the team structure is designed to ensure that the organization's resources are properly managed and protected. The implementation of the SAML protocol should be accompanied by the implementation of the necessary security measures, such as the protection of the default branch, the protection of the repository, and the protection of the organization's resources. The implementation of these measures will help to ensure that the organization's resources are properly managed and protected, and that the organization's data is properly secured.&lt;/p&gt;

</description>
      <category>github</category>
      <category>security</category>
      <category>audit</category>
    </item>
    <item>
      <title>GitHub: Personal Access Tokens</title>
      <dc:creator>Michal Šrámek</dc:creator>
      <pubDate>Thu, 04 Apr 2024 08:12:25 +0000</pubDate>
      <link>https://dev.to/sramek5/github-personal-access-tokens-ol3</link>
      <guid>https://dev.to/sramek5/github-personal-access-tokens-ol3</guid>
      <description>&lt;p&gt;There are currently 2 types of personal access tokens (PATs) available on GitHub. &lt;strong&gt;Fine-grained PATs&lt;/strong&gt; (beta) and &lt;strong&gt;Classic PATs&lt;/strong&gt;. Both are used for authentication and authorization, but have different properties and uses. There is no Token like Token.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt; &lt;/th&gt;
&lt;th&gt;Fine-grained PATs (beta)&lt;/th&gt;
&lt;th&gt;Classic PATs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Token for GitHub API for scripting or testing.&lt;/td&gt;
&lt;td&gt;OAuth personal access tokens &lt;strong&gt;OR&lt;/strong&gt; Instead of a Git password via HTTPS &lt;strong&gt;OR&lt;/strong&gt; For API authentication via Basic Authentication.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expiration&lt;/td&gt;
&lt;td&gt;Required (up to 1 year)&lt;/td&gt;
&lt;td&gt;Can be used without expiration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;td&gt;User and also Organization&lt;/td&gt;
&lt;td&gt;User&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;Either repository permissions (public, all, selected) and may (may not) access resources under the personal account; &lt;strong&gt;OR&lt;/strong&gt; repository permissions (public, all, selected) and may (may not) access resources under the organization&lt;/td&gt;
&lt;td&gt;Determined by &lt;a href="https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps"&gt;Scopes&lt;/a&gt;. These can be for anything the user is entitled to (even within the Organization).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overview&lt;/td&gt;
&lt;td&gt;They are visible in the Organization in the "Active tokens" overview with a visible expiration date. Once clicked, the accesses (what permissions the token has in which repository) are clearly visible.&lt;/td&gt;
&lt;td&gt;There is no overview in the Organization. It is possible to retrieve token activity via the API, but we cannot distinguish user activity from machine activity. Their activity is only recorded in GitHub Audit Logs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can PAT be disabled?&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Is approval required?&lt;/td&gt;
&lt;td&gt;Yes and No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Active use of Fine-grained PATs
&lt;/h2&gt;

&lt;p&gt;If the GitHub Organization Member (not the Owner) chooses to use Fine-grained PATs and mandatory approval of Fine-grained PATs is enabled, the Member will receive a "not found" message and the request will be in pending status. It will also appear in the "Pending Requests" report in the Organization:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnytherbkp3b2ii4yvwjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnytherbkp3b2ii4yvwjv.png" alt="Fine-Grained PAT" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The GitHub Organization Owner can judge whether the access is justified or not and approve/deny the request (or instruct the Member to restrict the rights of his PAT):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faagckksui26f7y39e3bh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faagckksui26f7y39e3bh.png" alt="Repository Access" width="800" height="683"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way &lt;strong&gt;least privileges&lt;/strong&gt; can be demanded and access is under control. Member will receive the approval/denial result via email.&lt;/p&gt;

&lt;p&gt;With disabled approval, the PAT is visible in the overview of active PATs, but there is no Organization Owner control over accesses.&lt;/p&gt;

&lt;p&gt;If a Member delete their PAT, no Owner approval is required, the PAT simply disappears from the list of active PATs.&lt;/p&gt;

&lt;p&gt;If a Member changes the rights of an already approved PAT, it needs to be re-approved (&lt;strong&gt;correct and expected approach&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;With Classic PATs there is no overview of who and how many are actually using them. Through the API it is possible to get some information, but it is no longer possible to distinguish between a machine and a Member (all activities are pretending to be Member activities).&lt;/p&gt;

&lt;h2&gt;
  
  
  The risks of using PATs
&lt;/h2&gt;

&lt;p&gt;The use of PATs within the GitHub Organization exposes the Organization to some potential risks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Broad permissions:&lt;/strong&gt; If the PAT grants wide permissions (e.g. administrative rights to everything in the Organization), a Member or application with this token can perform a wide range of actions, including those that may harm the Organization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loss of token:&lt;/strong&gt; If the PAT is in the wrong hands, it can be misused. Depending on the permissions of the token, this can mean loss of data, modification of repositories, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expiration:&lt;/strong&gt; Classic PATs on GitHub do not need to have any expiration (see table). This means that if a PAT is compromised and no one notices, it can be misused for a long time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit:&lt;/strong&gt; Although actions performed using PAT can be recorded, it can be harder to distinguish who actually performed the action if multiple people or systems share the token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Management:&lt;/strong&gt; With multiple PATs created it can be harder to keep track of who created what PAT, why and where it is used -&amp;gt; especially in the case of Classic PATs that are not visible in the active PAT overview (see table). This is a significant complication for security management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Function of systems&lt;/strong&gt;: A Member who builds a functional system/application on his/her personal PAT within his/her team and changes employment in the future, the rest of the team (or possibly the Organization) will no longer be able to use the automation/system/application. Upon leaving GitHub, the Organization will lose its PAT rights.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What GitHub Support says
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Fine-grained PATs have similar access restrictions as GitHub Apps.&lt;/li&gt;
&lt;li&gt;Classic PAT has the most capabilities of all the verification methods.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adding &lt;a href="https://docs.github.com/en/rest/apps/installations?apiVersion=2022-11-28#add-a-repository-to-an-app-installation"&gt;repository to the GitHup App&lt;/a&gt; would not help, because it has unsupported &lt;a href="https://docs.github.com/en/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28#apps"&gt;endpoint for Fine-grained PAT&lt;/a&gt;. Managing GitHub Apps has always been seen as something that requires a human to be involved because of the potential for improper access. GitHub is also getting feedback on Fine-grained PATs (they are in beta) in &lt;a href="https://github.com/orgs/community/discussions/36441"&gt;discussion&lt;/a&gt;. Anyone interested in using Fine-grained PATs for GitHub Apps and their repository management can have their voice heard here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacement for PATs
&lt;/h2&gt;

&lt;p&gt;Unless a specific case requires it, the use of PATs within the GitHub Organization should be avoided at all costs (especially classic ones), see Risks above. There are different authentication and authorization solutions for different tasks and integrations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;OAuth App -&lt;/strong&gt; Allows you to grant a specific application access to specific resources with specified permissions. In addition, access can be revoked at any time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Apps -&lt;/strong&gt; the most preferred way to integrate with GitHub. They can only access the information they need (&lt;strong&gt;least privileges&lt;/strong&gt;) which increases security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy Keys -&lt;/strong&gt; only for specific repositories, for authentication. These are SSH keys that bind to exactly one repository and allow reading or writing. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhooks -&lt;/strong&gt; for notification of certain events occurring in the Repository or the Organization. Not functional with applications running on-premise.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Apparent Solution
&lt;/h2&gt;

&lt;p&gt;PAT's are unfortunately another thing which is being left very often in an uncontrolled situation due to nobody really is responsible for it. There is no definite "best practise" approach. One thing is recommended - only the newer fine-grained PATs with enforced approval should be allowed to GitHub Organization Members. This way, the Organization Owner can control the accesses and ensure that the principle of &lt;u&gt;least privileges&lt;/u&gt; is respected. The use of Classic PATs should be avoided as much as possible and left as a privilege only for the Organization Owners and their GitHub management. &lt;/p&gt;

</description>
      <category>github</category>
      <category>security</category>
      <category>audit</category>
    </item>
    <item>
      <title>Activity Monitoring and Audit in AWS</title>
      <dc:creator>Michal Šrámek</dc:creator>
      <pubDate>Wed, 03 Apr 2024 12:30:57 +0000</pubDate>
      <link>https://dev.to/sramek5/activity-monitoring-and-audit-in-aws-1hd3</link>
      <guid>https://dev.to/sramek5/activity-monitoring-and-audit-in-aws-1hd3</guid>
      <description>&lt;p&gt;Following text involves AWS native tools for the continuous monitoring of activities within an AWS environment to detect and respond to security threats and breaches. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;It encompasses the discovery collection of best practices&lt;/em&gt;, how to achieve this goal. Implementing this &lt;u&gt;secure&lt;/u&gt; &lt;strong&gt;Activity Monitoring and Audit in AWS&lt;/strong&gt;, will enhance security posture, mitigate risks, and better protect all AWS resources and sensitive data from unauthorised access or malicious activities.&lt;/p&gt;

&lt;p&gt;Every decision made in AWS environment should be in accordance with the &lt;a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/architecture.html"&gt;AWS Security Reference Architecture&lt;/a&gt;. This involves understanding the principles outlined in the architecture, conducting a risk assessment to identify potential security risks, and designing AWS architecture to incorporate security controls at every layer. &lt;/p&gt;

&lt;h2&gt;
  
  
  Framework
&lt;/h2&gt;

&lt;p&gt;I personally recommend "internal audit framework" which is in compliance with AWS and should include the following (16) steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Start to use &lt;a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/understanding-landing-zones.html"&gt;AWS Landing Zone&lt;/a&gt; with &lt;a href="https://digitalcloud.training/what-is-aws-control-tower/"&gt;AWS Control Tower&lt;/a&gt; (&lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html"&gt;AWS Organizations&lt;/a&gt;)&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Landing Zone primarily sets up the initial infrastructure (multi-account AWS environment, core infrastructure components like networking and IAM). AWS Control Tower provides ongoing management and enforcement of security and compliance controls (centralised governance, compliance capabilities and enforcing policies across entire AWS environment). AWS Organizations is the underlying AWS service of AWS Control Tower.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Turn on &lt;a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html"&gt;AWS CloudTrail&lt;/a&gt; in each AWS account&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS CloudTrail logs can be analysed in real-time to detect unauthorised access attempts or changes to critical resources. Integration with monitoring tools enables proactive threat detection and compliance monitoring across the AWS environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Store &lt;a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-log-file-examples.html"&gt;AWS CloudTrail log&lt;/a&gt; in a centralised logging account with very restricted access&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proper stream log management and analysis processes enable more efficient threat detection and incident response. Restricting access to the centralised logging account minimises the risk of unauthorised access, ensuring data confidentiality and integrity. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Create &lt;a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html"&gt;AWS CloudWatch&lt;/a&gt; alarms for specific API calls&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time notification alarms of critical events for specific API calls (high-volume data transfers, sensitive resource modifications) should be enabled. These alarms serve as proactive measures. AWS CloudWatch Logs Insights can also search API history beyond the last 90 days. Additional useful info &lt;a href="https://medium.com/free-code-camp/how-to-auto-create-cloudwatch-alarms-for-apis-with-cloudwatch-events-and-lambda-b128920857aa"&gt;HERE&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Use Logging IP traffic for VPCs and DNS logs&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Obtaining valuable informations using &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html"&gt;VPC Flow Logs&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-query-logs.html"&gt;Amazon Route 53 resolver query logs&lt;/a&gt; and streaming them to either an Amazon S3 bucket or a CloudWatch log group is crucial.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Periodically examine “AWS log files” with &lt;a href="https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html"&gt;AWS GuardDuty&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This process enhances activity monitoring in AWS by proactively identifying security threats and suspicious activities. AWS GuardDuty can automatically analyse threat detection of AWS CloudTrail Events, VPC Flow Logs, DNS Logs and generally alerts to unexpected activity.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Enable &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/logging-with-S3.html"&gt;AWS S3 buckets logging&lt;/a&gt; to monitor requests made to each bucket&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It allows to monitor requests made to each bucket and track access attempts, changes, and other activities. Analysing S3 access logs can help identify unauthorised access attempts, data breaches or misconfigurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Use &lt;a href="https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html"&gt;AWS Config&lt;/a&gt; for viewing historical IAM configuration and changes over time&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Config is enabling to view the IAM policy that was assigned to a user, group, or role at any time. It is basically resource inventory (existing as well as deleted).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Collect alerts for IAM configuration changes and their audits&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;By setting up alerts we can be notified on IAM configuration changes. Additional useful info &lt;a href="https://aws.amazon.com/blogs/security/how-to-receive-alerts-when-your-iam-configuration-changes/"&gt;HERE&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Set up &lt;a href="https://docs.aws.amazon.com/detective/latest/adminguide/what-is-detective.html"&gt;AWS Detective&lt;/a&gt; controls around user creation and using a user credentials&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is need to be implemented together with AWS Config when a new user or group is created and for any API actions performed by a non-federated IAM principal.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Periodically generate and download IAM credential report&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Report can be used to audit the effects of credential lifecycle requirements (lists all users,  status of their passwords, access key updates and MFA devices). It can be further reported to an external auditor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check regularly the &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html"&gt;AWS IAM Access Analyzer&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Achieving least privilege and grant the right fine-grained permissions. It provides capabilities to set, verify, and refine permissions, analyse external access and validate, that policies match corporate security standards.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Audit session activity using &lt;a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html"&gt;AWS EventBridge&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up rules to detect when changes happen to any AWS resources. It provides comprehensive visibility into user actions and system events.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Enable the session activity logging in &lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html"&gt;AWS Systems Manager&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continual stream of session data logs to AWS CloudWatch Logs with details (user’s commands in a session, the ID of the user and timestamps). Additional useful info &lt;a href="https://aws.amazon.com/blogs/security/how-to-record-ssh-sessions-established-through-a-bastion-host/"&gt;HERE&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Use &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html"&gt;AWS Access Advisor&lt;/a&gt; to refine set up permission guardrails&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It analyses last accessed information in AWS accounts. Permission guardrails help control which services users and applications can access and determine the services not used by IAM users and roles. With service control policies (SCPs), access to those services can be restricted.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Automatically collect and monitor evidence by &lt;a href="https://docs.aws.amazon.com/audit-manager/latest/userguide/what-is.html"&gt;AWS Audit Manager&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proactive measure reducing risk by fine-tuning AWS controls. Evidence is a record that contains the information needed to demonstrate compliance with the requirements specified by a control. Examples of evidence could be a change activity triggered by a user, or a system configuration snapshot.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Implementing the above framework will help to ensure that the AWS environment is secure and compliant with security best practices. It will also help to detect and respond to security threats and breaches in a timely manner. By continuously monitoring activities within the AWS environment, organisations can better protect their resources and sensitive data from unauthorised access or malicious activities. The information as well as the mentioned framework is in compliance with the Czech &lt;a href="https://www.zakonyprolidi.cz/cs/2014-181"&gt;Act on Cyber Security No. 181/2014 Coll.&lt;/a&gt; and the &lt;a href="https://www.zakonyprolidi.cz/cs/2018-82"&gt;Decree on Cyber Security No. 82/2018 Coll.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>security</category>
      <category>audit</category>
    </item>
  </channel>
</rss>
