<?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: Vitali</title>
    <description>The latest articles on DEV Community by Vitali (@vitali).</description>
    <link>https://dev.to/vitali</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%2F301257%2Ffdae153b-d035-40ec-a580-83b07dc463c2.jpg</url>
      <title>DEV Community: Vitali</title>
      <link>https://dev.to/vitali</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vitali"/>
    <language>en</language>
    <item>
      <title>AWS 🔒 How to restrict access by IP</title>
      <dc:creator>Vitali</dc:creator>
      <pubDate>Sun, 05 Jul 2020 22:09:38 +0000</pubDate>
      <link>https://dev.to/vitali/aws-how-to-restrict-access-by-ip-434p</link>
      <guid>https://dev.to/vitali/aws-how-to-restrict-access-by-ip-434p</guid>
      <description>&lt;h2&gt;
  
  
  Hi there!
&lt;/h2&gt;

&lt;p&gt;In today's post, I would like to show you how you can restrict access to your AWS Account. Very often companies use static IP addresses to access the Internet. So if you know that access to your AWS account has to happen from specific IP, why allow it from the whole Internet.&lt;br&gt;
Here is a logic schema of how we are going to make restriction:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BMNEN6SF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5sc5minben5lxr9i8huq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BMNEN6SF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5sc5minben5lxr9i8huq.png" alt="logic schema"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚠The most important part is an &lt;strong&gt;IAM policy&lt;/strong&gt; that will &lt;strong&gt;enforce our restriction&lt;/strong&gt;. The policy denies any user's actions made from untrusted IP. To make so, we have to create a condition and specify two keys:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aws:SourceIp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aws:ViaAWSService&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the first one, we allow access from our IPs, by the second one we allow AWS Services to access our resources without the restriction. &lt;br&gt;
Your policy may look like it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Version"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2012-10-17"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Statement"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Effect"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Deny"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Action"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Resource"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Condition"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt;
            &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;NotIpAddress"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt;
                &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;aws:SourceIp"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;
                    &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XXX.XXX.XXX.0/24"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YYY.YYY.YYY.0/24"&lt;/span&gt;
                &lt;span class="pi"&gt;]&lt;/span&gt;
            &lt;span class="pi"&gt;},&lt;/span&gt;
            &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bool"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;aws:ViaAWSService"&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;false"&lt;/span&gt;&lt;span class="pi"&gt;}&lt;/span&gt;
        &lt;span class="pi"&gt;}&lt;/span&gt;
    &lt;span class="pi"&gt;}&lt;/span&gt;
&lt;span class="pi"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The good way to apply our restriction is to use IAM users' groups. IAM users groups usage is a good practice to handle permissions. But our approach will work with a single user as well. Depends on your case you may or may not use IAM groups.&lt;/p&gt;

&lt;p&gt;So next, create a group, attach a policy with necessary accesses and with IP restriction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_wblu_Xu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j76yb4c0iutgsia4ljwb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_wblu_Xu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j76yb4c0iutgsia4ljwb.gif" alt="Create a Group"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now even if API keys or a user's credentials will be compromised, an attacker has to avoid one more security mechanism in your AWS Account.&lt;br&gt;
Bye!👋&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo by Markus Spiske on Unsplash&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>security</category>
      <category>iam</category>
      <category>policy</category>
    </item>
    <item>
      <title>Extra bullet against Phishing</title>
      <dc:creator>Vitali</dc:creator>
      <pubDate>Tue, 14 Jan 2020 16:18:18 +0000</pubDate>
      <link>https://dev.to/vitali/extra-bullet-against-phishing-3abl</link>
      <guid>https://dev.to/vitali/extra-bullet-against-phishing-3abl</guid>
      <description>&lt;p&gt;In this short article, I want to share with you a very simple script that may save the day.&lt;/p&gt;

&lt;h3&gt;
  
  
  Intro
&lt;/h3&gt;

&lt;p&gt;It is not a secret that attackers prepare for the phishing attacks, especially for spear phishing. &lt;strong&gt;Spear phishing&lt;/strong&gt; is a phishing attack specifically designed against an individual or business. Usually, the aim of an attack to make you act as an attacker wanted to (e.g. click a link, open an attachment, etc). To achieve it an attacker tries to imitate a legitimate activity as good as possible. For example, the common case is using a company's official email signature format or even a mail template from an internal company portal. &lt;/p&gt;

&lt;p&gt;Also, I am sure you already know, attackers love to use domain names indistinguishable from the company's domain name. This is the thing we can use to be a step ahead. We have to generate the list of possible domains that an attacker may register for usage and periodically check DNS records of the domains from the list. Once we find a new domain, we have good chances to be prepared for an attack. &lt;/p&gt;

&lt;h3&gt;
  
  
  Function
&lt;/h3&gt;

&lt;p&gt;I made a simple &lt;strong&gt;Lambda function&lt;/strong&gt; that checks domains and sends a notification via SNS once a valid record was found (&lt;a href="https://github.com/vitaliy0x1/SecurityBlog.Cloud/tree/master/lambda_for_domains_checking"&gt;link&lt;/a&gt;). To simply deploy the function I also made a CloudFormation stack. You may use the link as &lt;code&gt;Amazon S3 template URL&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://s3.eu-central-1.amazonaws.com/securityblog.cloud/cf_files/template.yaml
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;After the stack is created, in function environment variables you have to specify the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SNS Topic ARN&lt;/li&gt;
&lt;li&gt;Add domains to the list. You may use &lt;a href="https://github.com/elceef/dnstwist"&gt;dnstwist&lt;/a&gt; to generate such a list.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ dnstwist.py --format idle domain.name &amp;gt; out.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Other ways
&lt;/h3&gt;

&lt;p&gt;I already mentioned &lt;a href="https://github.com/elceef/dnstwist"&gt;dnstwist&lt;/a&gt;, it has much more functionality you may utilize for your needs. &lt;br&gt;
Also, there is a web version of the tool - &lt;a href="https://dnstwister.report/"&gt;dnstwister.report&lt;/a&gt;. You may easily subscribe to new &lt;code&gt;dnstwist&lt;/code&gt; findings.&lt;/p&gt;

&lt;p&gt;Someday such a simple thing may save a lot of time in the future which you spend on an investigation. &lt;/p&gt;

&lt;p&gt;Have a good day! ☀️&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Photo by Sebastian Pena Lambarri on Unsplash&lt;/em&gt;&lt;/p&gt;

</description>
      <category>phishing</category>
      <category>aws</category>
      <category>security</category>
    </item>
    <item>
      <title>Log Management solutions in Clouds☁️(AWS Part1)</title>
      <dc:creator>Vitali</dc:creator>
      <pubDate>Sun, 12 Jan 2020 19:31:08 +0000</pubDate>
      <link>https://dev.to/vitali/log-management-solutions-in-clouds-aws-part1-2g0k</link>
      <guid>https://dev.to/vitali/log-management-solutions-in-clouds-aws-part1-2g0k</guid>
      <description>&lt;h2&gt;
  
  
  Hey there!👋
&lt;/h2&gt;

&lt;p&gt;As a Security Engineer, I work with logs all the time and there is no need to explain how important it is to have the right logs from the right system at the right time. The volume of logs is dramatically increasing each year. And we have to handle that volume, we have to collect/store/correlate/precess them.&lt;br&gt;
Whatever who you are in IT, you work with logs and the more logs you have the more you want to store them in some fast, reliable, convenient solution. You know what would be better if your team cares only about applications and all server issues stay on cloud providers. &lt;br&gt;
In the series of articles, I want to show you what main cloud providers may offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS
&lt;/h2&gt;

&lt;p&gt;AWS Solutions Portfolio has &lt;a href="https://aws.amazon.com/solutions/centralized-logging/"&gt;Centralized Logging Solution&lt;/a&gt;. You can deploy it in your account in a few minutes. But you don't need to think about it as an only one way to have log management in AWS, think about it as one of the hundreds of ways how to combine together AWS services.&lt;br&gt;
I want to show you the AWS services that you can use to create the best solution for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  CloudWatch
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/cloudwatch/"&gt;CloudWatch&lt;/a&gt; is the main monitoring service in AWS. It has amazing functionality like log metrics, dashboards, advanced log searching, and many others. Also, it has a lot of integrations with other AWS services. You can stream logs directly from ec2 instances as well as from on-premises servers via CloudWatch agent. It is possible to export logs to S3/Elasticsearch services if you want to have a copy or long term storage.&lt;/p&gt;

&lt;h5&gt;
  
  
  pros:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Build-in functionality&lt;/li&gt;
&lt;li&gt;Easy to get started to use&lt;/li&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  cons:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Cost. You will literally pay for everything. As an example, just for sending logs to CloudWatch you will pay for Data Ingestion about $0.60 per GB. It actually stopped me to use CloudWatch as a main log management solution. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Amazon Elasticsearch Service
&lt;/h3&gt;

&lt;p&gt;Many of us already know ElasticSearch and love it. But, what is the point to pay extra money to AWS when you can do the same on your own? Honestly, I love ElasticSearch in AWS even more. You don't need to be an expert in ElasticSearch to have full advantage of it. You are in charge only of the application level.  Imagine, you've deployed your ElasticSearch cluster a couple of months ago and suddenly someone says that you will have more logs then you planned...😱&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dyOjlqee--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/j8u2g4r0y2de63veecxf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dyOjlqee--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/j8u2g4r0y2de63veecxf.jpeg" alt="Plan Ahead"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;How long does it take to scale your cluster up or maybe after some time scale it down? In AWS it takes minutes and all that you have to do is a few clicks or API calls.&lt;/p&gt;

&lt;h5&gt;
  
  
  pros:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Solution that we already love&lt;/li&gt;
&lt;li&gt;Сluster management and updates without headaches&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  cons:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;You still need to manage indexes and define all application-level things like a number of shards and replicas. Also, you have to care about free storage space, but you already have a good friend for this - CloudWatch. A good practice is to create CloudWatch Alarm to follow the free space and make a notification or scale  Elasticsearch Domain up if the free space goes below a certain threshold.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Amazon Kinesis
&lt;/h3&gt;

&lt;p&gt;Amazon Kinesis is not one service, it is a family of four. All Kinesis services were built to help you out with streaming data. Kinesis services may become a very important part of your dataflow. I what to show you two of them that you may use for your own log management solution.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;&lt;a href="https://aws.amazon.com/kinesis/data-streams/"&gt;Kinesis data stream&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; is a real-time data streaming service. You can put data into a stream via API using your own code, third-party products or Kinesis Agent. To get data from a stream you may use Kinesis Firehose, Lambda or other applications. The good thing about Kinesis Data Stream is you pay for &lt;a href="https://aws.amazon.com/kinesis/data-streams/pricing/"&gt;Shard Hours&lt;/a&gt;. It means that you don't pay for data ingestion and together with a custom producer, it gives you amazing flexibility. You may aggregate short massages or compress before sending them to stream. Then a consumer processes your data on the fly, especially if you've chosen a lambda function as a consumer. I found a combination of Kinesis Data Stream and Lambda function as very powerful because they both are highly scalable, highly available and you keep everything as a code. &lt;/p&gt;

&lt;h5&gt;
  
  
  pros:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Predictable cost&lt;/li&gt;
&lt;li&gt;Amazing flexibility&lt;/li&gt;
&lt;li&gt;Serverless &lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  cons:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Require software development skills and it takes more time to get started to use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="https://aws.amazon.com/kinesis/data-firehose/"&gt;Kinesis Data Firehose&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; is the easy way to upload your streaming data to data lakes. Perhaps, AWS has implemented one of the common scenarios for us. You don't need to develop your own application if you want to store streaming data in one of the services that Kinesis Data Firehose supports(S3/Redshift/ElasticSearch/Splunk). The worth thing to mention that with Firehos you can transform source records before it stores to data lakes. It gives you the ability to pre-process data, but such a feature has its &lt;a href="https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html"&gt;limits&lt;/a&gt;.&lt;/p&gt;

&lt;h5&gt;
  
  
  pros:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Easy to get started to use&lt;/li&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  cons:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Solve a narrow, specific task.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the next article, I will show other useful AWS services that you may use. Also, I will try to show examples of how you may combine services to solve some common scenarios.  &lt;/p&gt;

</description>
      <category>security</category>
      <category>aws</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Practice with AWS Access analyzer</title>
      <dc:creator>Vitali</dc:creator>
      <pubDate>Sun, 29 Dec 2019 10:25:23 +0000</pubDate>
      <link>https://dev.to/vitali/practice-with-aws-access-analyzer-3l1d</link>
      <guid>https://dev.to/vitali/practice-with-aws-access-analyzer-3l1d</guid>
      <description>&lt;h3&gt;
  
  
  Hey there!
&lt;/h3&gt;

&lt;p&gt;Have you ever asked yourself who has access to my AWS resources? or who outside of my account has access? Honestly, the second one most important, because nobody wants to be a subject of news about a new data breach :). AWS made a tool for us to figure it out. It is called &lt;strong&gt;&lt;em&gt;IAM Access analyzer&lt;/em&gt;&lt;/strong&gt;. You can find it in the IAM Service. &lt;/p&gt;

&lt;h3&gt;
  
  
  Short overview
&lt;/h3&gt;

&lt;p&gt;In a few words, what it does, it evaluates your resource policies and finds all external principal that &lt;strong&gt;has access to resources in your account&lt;/strong&gt;. It takes your account as the &lt;strong&gt;&lt;em&gt;zone of trust&lt;/em&gt;&lt;/strong&gt; and informs you about everything outside of the zone, but has access to the zone.&lt;br&gt;
Other important things worth to mention:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access analyzer is region-specific, so &lt;strong&gt;you have to enable it&lt;/strong&gt; for each region, where you want to use it. &lt;/li&gt;
&lt;li&gt;Access analyzer currently supports &lt;strong&gt;a limited list of resource &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-resources.html"&gt;types&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ok, enough for theory, time to practice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Practice
&lt;/h3&gt;

&lt;p&gt;You can find the Access analyzer in IAM. For creating a new Analyzer just press create and provide a name or use default one.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z_We8KAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/NuclearBreath/SecurityBlog.Cloud/raw/master/Practice_with_AWS_Access_Analyzer/img/AccessAnalyzer0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z_We8KAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/NuclearBreath/SecurityBlog.Cloud/raw/master/Practice_with_AWS_Access_Analyzer/img/AccessAnalyzer0.gif" alt="Creating"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Once the scan is done, you may see all the findings. Yes, it is such simple. At first, &lt;strong&gt;you have to go through all findings&lt;/strong&gt; and either archive or resolve them. Archiving means that &lt;strong&gt;access is intended&lt;/strong&gt;, once you archive a finding it will not appear till resource policy will be changed again. The resolve status appears only after you fix &lt;strong&gt;unintended access&lt;/strong&gt; and it obviously means that found access does not exist anymore.&lt;br&gt;
   After you are done, you probably would like to receive notification about new findings.  You can do it via &lt;code&gt;CloudWatch Events&lt;/code&gt;. Just create a new rule and define necessary action for new findings. I've used SNS topic to send an email once new findings appear. &lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--859ocL5h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/NuclearBreath/SecurityBlog.Cloud/raw/master/Practice_with_AWS_Access_Analyzer/img/AccessAnalyzer1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--859ocL5h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/NuclearBreath/SecurityBlog.Cloud/raw/master/Practice_with_AWS_Access_Analyzer/img/AccessAnalyzer1.gif" alt="Notification"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you want to white-list some resources or external principal you can use archive rules for it. Go to &lt;code&gt;Archive rules&lt;/code&gt; click add and define a condition.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RpkXjKEg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/NuclearBreath/SecurityBlog.Cloud/raw/master/Practice_with_AWS_Access_Analyzer/img/AccessAnalyzer2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RpkXjKEg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/NuclearBreath/SecurityBlog.Cloud/raw/master/Practice_with_AWS_Access_Analyzer/img/AccessAnalyzer2.gif" alt="Archive rules"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Access analyzer is fast to implement and simple to use tool that you definitely need to check out. &lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html"&gt;Official Documentation&lt;/a&gt;&lt;/p&gt;

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