<?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: Andrea Cavagna | AWS builder</title>
    <description>The latest articles on DEV Community by Andrea Cavagna | AWS builder (@a_cava94).</description>
    <link>https://dev.to/a_cava94</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%2F246224%2F0f28a94e-bd4d-4186-be22-fe47f75c0e35.jpg</url>
      <title>DEV Community: Andrea Cavagna | AWS builder</title>
      <link>https://dev.to/a_cava94</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/a_cava94"/>
    <language>en</language>
    <item>
      <title>AWS Console login to multiple accounts at the same time</title>
      <dc:creator>Andrea Cavagna | AWS builder</dc:creator>
      <pubDate>Thu, 17 Nov 2022 13:00:00 +0000</pubDate>
      <link>https://dev.to/aws-builders/aws-console-login-to-multiple-accounts-at-the-same-time-21kk</link>
      <guid>https://dev.to/aws-builders/aws-console-login-to-multiple-accounts-at-the-same-time-21kk</guid>
      <description>&lt;h2&gt;
  
  
  Cloud environment is fragmented, we know it,  AWS makes no exception!
&lt;/h2&gt;

&lt;p&gt;While the AWS CLI already allows managing multiple accounts, the console experience is still far behind: it allows &lt;strong&gt;one connected session per browser instance by default&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;This is a great downfall when one is frequently changing between accounts, which is normally part of the day-by-day routine of CloudOps.&lt;/p&gt;

&lt;p&gt;So you may ask: “How can I have multiple AWS console sessions active at the same time and be able to easily distinguish between them”?&lt;/p&gt;

&lt;p&gt;The answer could be using different anonymous browser windows or opening different browsers at the same time. Even more, I can use one of the many different extensions available on Firefox. &lt;br&gt;
Are those the best options? Frankly I don’t think so…&lt;/p&gt;
&lt;h2&gt;
  
  
  One Web extension to access multiple console
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SqLub3uW5QU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;We are developers, we love to automate everything, and we get bored doing repetitive tasks. That’s why we managed to open different AWS consoles in a single browser window, in a click. finally we integrated it in our daily routine, &lt;a href="https://leapp.cloud" rel="noopener noreferrer"&gt;Leapp&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Today, I want to share with you our &lt;a href="https://docs.leapp.cloud/0.16.1/built-in-features/multi-console/" rel="noopener noreferrer"&gt;Leapp extension&lt;/a&gt;, available for all the major browsers: Firefox, Chrome, Brave, and Edge.&lt;/p&gt;

&lt;p&gt;No more need to manage different browsers at the same time. &lt;/p&gt;

&lt;p&gt;No need to access every time. &lt;/p&gt;

&lt;p&gt;No need to input by yourself all the information required to log in to the different accounts.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://docs.leapp.cloud/0.16.1/configuration/" rel="noopener noreferrer"&gt;create all the AWS sessions&lt;/a&gt; you need on Leapp; all these sessions are, by construction, related to a specific AWS Account/Role couple (if you need an introduction to AWS IAM, check this &lt;a href="https://medium.com/leapp-cloud/how-to-access-your-aws-account-e79352e8a7ba" rel="noopener noreferrer"&gt;post&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;With the extension &lt;a href="https://docs.leapp.cloud/0.16.1/built-in-features/multi-console#install-the-extension" rel="noopener noreferrer"&gt;installed&lt;/a&gt;, you’ll be able to open it from Leapp on one or more AWS Console on a specific Account with a specific role. &lt;/p&gt;

&lt;p&gt;All in your default Browser window, without losing your preferences.&lt;/p&gt;

&lt;p&gt;The way it works relies on isolated containers on Firefox, and on cookies for Chromium-based browsers. &lt;/p&gt;

&lt;p&gt;Leapp extension keeps track of all the cookies in a tab that is labeled with a specific metatag and listens to all the requests and responses storing and retrieving them as needed. This is done for all the tabs currently opened in the browser.&lt;/p&gt;

&lt;p&gt;Let’s see how to install and start using the extension!&lt;/p&gt;

&lt;h2&gt;
  
  
  Install your Leapp browser extension
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Install Leapp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Skip this step if you already have Leapp installed on your machine)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;First, you need to &lt;a href="https://docs.leapp.cloud/0.16.0/installation/install-leapp/" rel="noopener noreferrer"&gt;install Leapp Desktop App&lt;/a&gt; because the extension needs it to communicate what AWS Console it has to open.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Add a session&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can add a session individually, or using the AWS Identity Center integration (ex AWS Single Sign-on). To add a &lt;a href="https://docs.leapp.cloud/0.16.1/configuring-session/configure-aws-iam-role-federated/" rel="noopener noreferrer"&gt;Federated&lt;/a&gt;, &lt;a href="https://docs.leapp.cloud/0.16.1/configuring-session/configure-aws-iam-role-chained/" rel="noopener noreferrer"&gt;Chained&lt;/a&gt;, or &lt;a href="https://docs.leapp.cloud/0.16.1/configuring-session/configure-aws-iam-user/" rel="noopener noreferrer"&gt;IAM User&lt;/a&gt; session, use the plus button in the top bar. &lt;/p&gt;

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

&lt;p&gt;To &lt;a href="https://docs.leapp.cloud/0.16.1/configuring-integration/configure-aws-single-sign-on-integration/" rel="noopener noreferrer"&gt;add sessions via AWS Identity Center integration&lt;/a&gt;, use the plus button near the integration sidebar.&lt;/p&gt;

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

&lt;p&gt;In both cases fill the required parameters.&lt;/p&gt;

&lt;p&gt;(Note: at the moment IAM User sessions can’t use the extension, but all others do)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the extension&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The extension is available for all major browsers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you’re on Firefox you can &lt;a href="https://addons.mozilla.org/it/firefox/addon/leapp-multi-console-extension/" rel="noopener noreferrer"&gt;download it directly from the store&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If you’re on Chrome, Edge, or any other Chromium-based browser which accepts extensions, you have to manually install the .zip file you can find &lt;a href="https://d3o59asa8udcq9.cloudfront.net/extension/leapp-extension-chromium-latest.zip" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to use the extension&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With your preferred browser opened and the extension installed, return to Leapp and select one session you wish to access via AWS Console.&lt;/p&gt;

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

&lt;p&gt;The Session will be launched in your default browser in a new tab. From there on you can open new child tabs from the initial one and all of them will retain the same cookies. On Firefox, you can verify this by taking a look at the color of the session, which will be the same.&lt;/p&gt;

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

&lt;p&gt;The extension comes also with a small user interface that lets you focus the tab you need based on the AWS account and role currently set in that tab.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;After reading this article you may wonder why you would use Leapp extension instead of one of the many others available.&lt;/p&gt;

&lt;p&gt;Here are my top 3 good reasons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programmatic meets Console access&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Many tools scattered on the Internet are useful for Programmatic access (i.e. CLI tools) to AWS, while many others (typically most of the extensions for Firefox) are only used for Console access.&lt;/p&gt;

&lt;p&gt;You can have both. In the same tool. Behaving the same way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secure Access&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Are you managing your credentials securely? The fact is that most tools only act as a way to access AWS, but the security posture of those credentials is a burden on the shoulders of the final user.&lt;/p&gt;

&lt;p&gt;Leapp uses and rotates for you temporary short-lived credentials, generated from your sensitive infos (encrypted in your local system) for use with any AWS-compatible tools (i.e. AWS CLI, Terraform, CDK, etc.), and for accessing your AWS console too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extensibility&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Leapp comes with a &lt;a href="https://docs.leapp.cloud/0.16.1/plugins/plugins-introduction/" rel="noopener noreferrer"&gt;plugin system&lt;/a&gt; that lets you enhance your experience by automating your everyday operations on AWS.&lt;/p&gt;

&lt;p&gt;This reflects also on the extension, as it communicates via WebSocket with Leapp.&lt;/p&gt;

&lt;p&gt;Finally, I would like to suggest &lt;a href="https://medium.com/leapp-cloud/stop-putting-aws-credentials-in-the-credentials-file-fb7dfed29b05" rel="noopener noreferrer"&gt;this article&lt;/a&gt; on how to manage AWS credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;If you’re here, reading this article, is thanks to the time I saved in opening and closing AWS sessions. Maybe it may seems esagerate, in a way, but think about all the minutes combined everyday doing repetitive tasks, and you’ll see how much time it is!&lt;/p&gt;

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

&lt;p&gt;I strongly believe that many of you have the same issue at the moment, that’s why we open-sourced this solution to everyone,  &lt;/p&gt;

&lt;p&gt;We have seen what problems it could solve, mainly for managing multiple AWS account consoles at the same time, but also because being part of a more structured tool, it does it with secure credentials and without having the user remember passwords, profile names, roles, and so on.&lt;/p&gt;

&lt;p&gt;We have seen where to retrieve it and how to install it.&lt;/p&gt;

&lt;p&gt;Automating processes is also your thing? Do you like to find solutions to your everyday problems, and like to share them with others? Then join &lt;a href="https://join.slack.com/t/noovolari/shared_invite/zt-opn8q98k-HDZfpJ2_2U3RdTnN~u_B~Q" rel="noopener noreferrer"&gt;our community&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Until next time thanks for reading and stay safe!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Can't miss Cloud Operations Sessions at re:Invent 2022</title>
      <dc:creator>Andrea Cavagna | AWS builder</dc:creator>
      <pubDate>Fri, 11 Nov 2022 14:17:40 +0000</pubDate>
      <link>https://dev.to/aws-builders/cant-miss-cloud-operations-sessions-at-reinvent-2022-15gf</link>
      <guid>https://dev.to/aws-builders/cant-miss-cloud-operations-sessions-at-reinvent-2022-15gf</guid>
      <description>&lt;p&gt;Today, I want to share with you the sessions and events I'm more excited about as an AWS Community builder with a focus on the best way to operate securely in AWS.&lt;/p&gt;

&lt;p&gt;Launched in 2012, &lt;a href="https://reinvent.awsevents.com/"&gt;re:Invent&lt;/a&gt; is the annual developer conference hosted by Amazon Web Services. &lt;/p&gt;

&lt;p&gt;With more than 60000 attendees and 2500 technical sessions, it's the most entertaining week of the year in Las Vegas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--54DvaE4x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/to3zbq6sryka2iwf0ge6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--54DvaE4x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/to3zbq6sryka2iwf0ge6.jpg" alt="My first AWS re:invent" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I want to thank &lt;a href="https://steampipe.io/blog/reinvent2022-security-sessions"&gt;Chris Farris and his post&lt;/a&gt; for inspiring me to write this article.&lt;/p&gt;

&lt;p&gt;The link to the session brings you directly to the Session Planner. If it's hard to schedule your re:Invent Calendar, &lt;a href="https://reinvent-planner.richardfan.xyz/"&gt;try to use the unofficial planner&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sessions type @ AWS re:invent
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Chalk Talks
&lt;/h3&gt;

&lt;p&gt;Chalk Talks are highly interactive sessions with a small audience. &lt;/p&gt;

&lt;p&gt;Each begins with a short lecture (10–15 minutes) delivered by an AWS expert, followed by a 45- or 50-minute Q&amp;amp;A session with the audience.&lt;/p&gt;

&lt;p&gt;This is by far my favorite session type for the event, and this type of session WILL NOT be available later on &lt;a href="https://www.youtube.com/c/amazonwebservices"&gt;YouTube AWS Channel&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Breakout Sessions
&lt;/h3&gt;

&lt;p&gt;AWS re:Invent breakout sessions are lecture-style and one hour long. Those sessions are made by experts and will be available a week after the event in a dedicated playlist on YouTube.&lt;br&gt;
Be sure to follow one if you wanna meet the speaker or ask anything from him, otherwise, you have the opportunity to learn the topic easily the week after.&lt;/p&gt;

&lt;h3&gt;
  
  
  Builders’ Sessions and &lt;strong&gt;Workshops&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Builders Sessions are small-group sessions led by an AWS expert who guides you on new technology, followed by a hands-on practice of the topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  A list of can't-miss sessions and events
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/COP305"&gt;COP305&lt;/a&gt; - Best practices for organizing and operating on AWS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/biancalankford/"&gt;Bianca Lankford&lt;/a&gt; is the Senior Director of Global Cloud Engineering @ Warner Bros. Discovery. I'm interested to hear more about a big enterprise relying on Tools and Best practices to manage a complex cloud environment.&lt;/p&gt;

&lt;p&gt;Description:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Managing and operating cloud environments from multiple business units can be challenging. In this session, hear from Bianca Lankford, Senior Director/Global Head of Cloud Engineering &amp;amp; Governance from Warner Brothers Discovery, about how they organized their cloud environment to allow teams to develop with agility while being able to manage and operate their applications in a secure, automated, reliable, and cost-effective way. See how you can use AWS Organizations and AWS Systems Manager to operate your applications at scale, manage mergers and acquisitions, and develop governance as a product for your environment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/SEC001"&gt;SEC001&lt;/a&gt; - Building more AWS accounts? One IAM Identity Center to rule them all&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jonathanvankim/"&gt;Jonathan VanKim&lt;/a&gt; is a Security Specialist in Cloud Systems Architecture @ AWS. &lt;br&gt;
The peculiarity is that the session will be at the AWS Village in the Demo Theater. Having a networking opportunity to better access the Cloud in an Organization from a single place.&lt;/p&gt;

&lt;p&gt;Description:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Want to simplify your workforce access with AWS IAM Identity Center (successor to AWS Single Sign-On)? This session explores how to use AWS Managed Microsoft AD integrated with IAM Identity Center. Learn how to quickly and simply manage your workforce users and scale in your AWS organizations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/BOA202"&gt;BOA202&lt;/a&gt; - Take these open-source tools on your AWS adventure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS Developer advocate &lt;a href="https://twitter.com/curtEYEvan"&gt;Curtis Evans&lt;/a&gt; and &lt;a href="https://twitter.com/darkosubotica"&gt;Darko Meszaros&lt;/a&gt; will introduce &lt;a href="https://twitter.com/darkosubotica/status/1586124006809182208"&gt;Build on Live during the event,&lt;/a&gt; and I can't wait to know the best Open-source tools they will explore. I'm hoping to &lt;a href="https://github.com/Noovolari/leapp"&gt;see Leapp there&lt;/a&gt;, too (" Making my AWS adventure easier” was one of the main points that brought me to build the OSS tool)🙂&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You've set out on a grand adventure to learn, build and expand on AWS. Like any good adventure, it has its challenges. Time to gear up! Grab your best tools and gear to help you on your way. In this session, have a look at open-source tools that can help make your AWS adventure easier. See something for security and permissions, something for cost management, and a few more things for building in the Cloud—tools like Infracost, IAMLive, and more.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/COP323-R"&gt;COP323&lt;/a&gt; - Delegating access in a multi-account environment with IAM Identity Center&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a Chalk talk. A smaller group talks about the problem and how to address it together. In this case, I'm particularly interested in seeing ABAC models with IAM Identity Center. Before this session, I advise watching &lt;a href="https://www.youtube.com/watch?v=BFrWnKZ0DQ8&amp;amp;t=3091s"&gt;this amazing session&lt;/a&gt; by &lt;a href="https://www.linkedin.com/in/quint-van-deman/"&gt;Quint Van Deman&lt;/a&gt; (One of the best sessions I've ever attended). &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In this chalk talk, learn about delegating access management with AWS Organizations and AWS Control Tower using AWS IAM Identity Center. Using customer-managed policies and permissions boundaries, you can enable a decentralized access management model with permissions guardrails that enforce coarse-grained authorization standards that apply in both role-based and attribute-based access control (RBAC and ABAC) models.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/COP318"&gt;COP318&lt;/a&gt; - Setting up controls at scale in your AWS environment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/cybersaint/"&gt;Michael St.Onge&lt;/a&gt;, senior security manager @ AWS, will speak about the Control tower's ability to delegate access and make it easy to implement a least-privilege permission easier for AWS Users&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Companies are challenged with balancing compliance and security requirements with the desire to allow engineers to make their own design choices. Many companies take an allow-list approach: restricting developer access to AWS services until risks are defined and controls implemented. In this session, learn how to use AWS Control Tower features to meet control objectives and reduce the time it takes to approve AWS services for use.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/NFX305"&gt;NFX305&lt;/a&gt; - Reimagining multi-account deployments for security and speed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Netflix has proven to be one step forward in many fields among Cloud operations in a multi-account strategy. &lt;a href="https://netflixtechblog.com/?gi=f62f7c632913"&gt;Netflix Tech blog&lt;/a&gt; is one of my favorite resources to be on top of technology ideas. Every time I &lt;a href="https://www.infoq.com/presentations/netflix-infrastructure-security/"&gt;go back to this presentation&lt;/a&gt; by &lt;a href="https://twitter.com/travismcpeak"&gt;Travis McPeak&lt;/a&gt; and &lt;a href="https://twitter.com/__muscles"&gt;Will Bengtson&lt;/a&gt; to explain the level of excellence of Netflix&lt;br&gt;
This time they will present a new paradigm for a multi-account deployment, take it. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In this session, discover a new paradigm for multi-account architecture based on decoupling a workload's identity and permissions from its underlying cloud infrastructure. Efforts to segment cloud environments are often stymied by complex migrations and excessive operational overhead, hindering organizations from capturing the desired security and scalability benefits. Join us to learn how Netflix is deploying applications in isolated AWS accounts without relocating their compute or network resources, and discover how they are increasing developer velocity along the way.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;- &lt;a href="https://portal.awsevents.com/events/reinvent2022/dashboard/event/sessions/NFX302"&gt;NFX302&lt;/a&gt; - Accelerate insights using AWS SDK instrumentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How could you figure out an application's identity across an AWS account? It’s a question I ask myself often, and I'm intrigued to figure out the Netflix way to do so. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Migrating an application's identity across AWS accounts requires a clear picture of its identity-resource relationships. In this session, learn how Netflix filled gaps in cloud data sources by instrumenting AWS SDKs to create new categories of visibility.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Open Source Zone and Noovolari Leapp&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I won't do any pitch for re:invent, but I will present Leapp at the Open source Zone (Third floor of the Venetian near San Polo and the Press area) on Wednesday from 1 pm to 3 pm.&lt;br&gt;
I will speak about &lt;a href="https://github.com/Noovolari/leapp"&gt;my open-source project Leapp&lt;/a&gt; and how to better operate in Cloud daily as a CloudOps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MvbCFlX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4iu85lwbqi253zjb7e5s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MvbCFlX8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4iu85lwbqi253zjb7e5s.jpg" alt="Open source Zone AWS re:invent 2021" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Re: Invent is firstly a Networking event
&lt;/h2&gt;

&lt;p&gt;This year will be my third AWS re:invent, so my most extensive advice is to explore our partner expo, including the &lt;a href="https://reinvent.awsevents.com/learn/expo/"&gt;AWS Village&lt;/a&gt; and the &lt;a href="https://reinvent.awsevents.com/community/public-spaces/"&gt;AWS Modern Applications and Open Source Zone&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My advice is to be prepared and &lt;a href="https://awsreinvent22.mapyourshow.com/8_0/exhview/index.cfm?selectedBooth=622"&gt;look at the Partner Expo map&lt;/a&gt; at the Venetian before landing in Vegas.&lt;/p&gt;

&lt;p&gt;Could you make time for a meeting with your professional network? Let people know you'll be at re:Invent (changing your Twitter and LinkedIn name is an excellent point to start from).&lt;/p&gt;

&lt;p&gt;Do you think that your evening will be free? Not at all. T&lt;a href="https://conferenceparties.com/reinvent2022/"&gt;here are plenty of Parties to participate&lt;/a&gt; in before &lt;a href="https://reinvent.awsevents.com/community/replay/"&gt;the epic re:play party&lt;/a&gt;. Check them out and grab your ticket!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3PbaMaLz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kcj776xdkm0wf590317y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3PbaMaLz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kcj776xdkm0wf590317y.jpg" alt="AWS re:play party image 2021" width="880" height="1173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Re:Invent, to me, is a community event and is the yearly opportunity to meet with all the &lt;a href="https://join.slack.com/t/noovolari/shared_invite/zt-opn8q98k-HDZfpJ2_2U3RdTnN~u_B~Q"&gt;Top of the Ops community&lt;/a&gt; we have built with Open-source.&lt;br&gt;
The amount of Cloud experts from all around the world is a unique opportunity to peer and create long-term connections with many people, and this is the best part of re:invent. Don’t miss having fun and visiting all the best of Vegas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x-1D6DHT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f57angt98uz69wb7ht0j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x-1D6DHT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f57angt98uz69wb7ht0j.jpg" alt="AWS re:invent community meeting" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So please, &lt;a href="https://twitter.com/a_cava94"&gt;text me if you want to grab a drink together!&lt;/a&gt; I’m a big fan of Bourbon and Rye Whiskeys 🥃 and I will be happy to connect with you in front of a good cocktail or beer 🍺!&lt;br&gt;
I hope to see you all in Las Vegas!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>opensource</category>
      <category>operations</category>
    </item>
    <item>
      <title>AWS Single Sign-on for DevOps: is CLI v2 the best option?</title>
      <dc:creator>Andrea Cavagna | AWS builder</dc:creator>
      <pubDate>Wed, 13 Jan 2021 15:33:53 +0000</pubDate>
      <link>https://dev.to/a_cava94/aws-single-sign-on-for-devops-is-cli-v2-the-best-option-5792</link>
      <guid>https://dev.to/a_cava94/aws-single-sign-on-for-devops-is-cli-v2-the-best-option-5792</guid>
      <description>&lt;p&gt;Going back to the 10 of December 2017, AWS introduced AWS Single Sign-On, a service that makes it easy for you to centrally manage SSO access to multiple AWS accounts and business applications.&lt;/p&gt;

&lt;p&gt;Three years later, the Service has grown a lot, and with the increment of usage of services like AWS Control Tower and the AWS Organization in general, AWS Single Sign-on has been one of the best methods proposed by AWS to manage access in a Multi-Account Cloud environment.&lt;/p&gt;

&lt;p&gt;But, in the first instance, users were supposed to log into the AWS SSO portal, copy the named profile credentials and paste them into their local &lt;code&gt;~/.aws/**&lt;/code&gt; files. That was a big waste of time and productivity for developers.&lt;/p&gt;

&lt;p&gt;Later on, in 2019, AWS introduced the CLI V2, in beta preview, with the native support of AWS SSO. &lt;/p&gt;

&lt;p&gt;That's been a huge leap for developers because the release included automatic short-term credential rotation enabling developers to take full advantage of CLI profiles to switch between roles, which increases their security posture.&lt;br&gt;
So, let's see the good, the bad, and the ugly of this proposal.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Good
&lt;/h2&gt;

&lt;p&gt;With this integration, Developers can now initiate the same SSO flow as the portal, but with different results. &lt;/p&gt;

&lt;p&gt;The CLI will automatically generate temporary credentials from an access Token that will last 8 hours. &lt;/p&gt;

&lt;p&gt;Also, it applies named profiles for each access role you need.&lt;/p&gt;

&lt;p&gt;By doing so, developers can change their account by switching the in-use AWS named profile.&lt;br&gt;
The automatic short-term credential management enables developers to switch between accounts and roles seamlessly without refreshing credentials.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6s3j0iog--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610448547091/8zegqvPWH.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6s3j0iog--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610448547091/8zegqvPWH.gif" alt="aws sso cliv2.gif" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To run a command that refers to a particular AWS profile, you have only to add the --profile parameter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws s3 &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;--profile&lt;/span&gt; my-profile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  The Bad
&lt;/h2&gt;

&lt;p&gt;The process is relatively easy on the developer side, but it still brings some issues.&lt;/p&gt;

&lt;p&gt;From the CLI, you can list all the accounts you can access via AWS Single Sign-On, but you don't have the complete picture of the situation: which Role can you access in that specific account? This is not a single process via the CLI, and in most cases, that can be a significant effort.&lt;/p&gt;

&lt;p&gt;On the credentials side, this method doesn't generate a classic AWS Role credential inside the &lt;code&gt;~/.aws/credentials&lt;/code&gt; with &lt;code&gt;aws_access_key_id&lt;/code&gt;, &lt;code&gt;aws_secret_access_key&lt;/code&gt;, and &lt;code&gt;aws_session_token&lt;/code&gt;, but generate temporary credentials for each call. This is not a bad thing in itself.&lt;/p&gt;

&lt;p&gt;This credential method, via CLI, is still in Beta preview, and lots of open-source projects yet don't support it. &lt;/p&gt;

&lt;p&gt;There are still many issues online on those class of problem:&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/aws/aws-cdk/issues/5455"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        AWS SSO Named Profiles Support
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#5455&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/vikyol"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--OLeDhzJg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars0.githubusercontent.com/u/944576%3Fv%3D4" alt="vikyol avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/vikyol"&gt;vikyol&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/aws/aws-cdk/issues/5455"&gt;&lt;time&gt;Dec 17, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;AWS CLI v2 supports &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html" rel="nofollow"&gt;AWS SSO named profiles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, CDK CLI cannot resolve SSO named profiles yet.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ cdk deploy --profile sso-named-profile

Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without this feature,  users have to login to SSO user portal and &lt;a href="https://aws.amazon.com/blogs/security/aws-single-sign-on-now-enables-command-line-interface-access-for-aws-accounts-using-corporate-credentials/" rel="nofollow"&gt;fetch credentials for command line and CLI access&lt;/a&gt;, which needs to be repeated every time the credentials expire.&lt;/p&gt;
&lt;p&gt;Even though CLI v2 is still in preview, it would be good to have this feature implemented for early adopters.&lt;/p&gt;
&lt;h3&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Use Case&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Simplify deployments to multiple-accounts for AWS SSO users.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Proposed Solution&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Read sso_start_url, sso_role_name and sso_account_id from ~/.aws/config file.&lt;/li&gt;
&lt;li&gt;Fetch the accessToken in ~/.aws/sso/cache/ matching sso_start_url.&lt;/li&gt;
&lt;li&gt;Fetch temporary credentials from STS using SSO.get-role-credentials() with accessToken, sso_account_id and sso_role_name parameters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a 🚀 Feature Request&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/aws/aws-cdk/issues/5455"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  The Ugly
&lt;/h2&gt;

&lt;p&gt;Last but not least, let's identify the sore points.&lt;/p&gt;

&lt;p&gt;Once you have been logged into the portal, in the &lt;code&gt;~/.aws/sso/cache/**&lt;/code&gt; you will find 2 files:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BBBWhg8G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610448735671/7BuuPEjPW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BBBWhg8G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610448735671/7BuuPEjPW.png" alt="Schermata 2021-01-08 alle 16.42.55.png" width="880" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first contains the local client id, which is required to make every API call to the AWS Single Sign-On portal, and the other includes an &lt;code&gt;ACCESS TOKEN&lt;/code&gt;that is valid for 8 hours.&lt;/p&gt;

&lt;p&gt;With those two objects, you can access &lt;strong&gt;EVERY&lt;/strong&gt; &lt;strong&gt;account&lt;/strong&gt; you can reach through AWS Single Sign-On.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;That means that if someone steals your credentials files, he can access all your accounts via AWS SSO!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SVXdotx3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610449181939/TLQ775AvX.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SVXdotx3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610449181939/TLQ775AvX.gif" alt="security.gif" width="260" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the most painful part to me is that the &lt;code&gt;~/.aws/**&lt;/code&gt; files are accessible freely inside your local System.&lt;/p&gt;

&lt;p&gt;We know really well that Striking a Balance between Security and Flexibility is Crucial.&lt;/p&gt;

&lt;p&gt;But that was too much not secure in comparison to what we were gaining in terms of flexibility. So we came up with this new feature in our open-source project:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Noovolari"&gt;
        Noovolari
      &lt;/a&gt; / &lt;a href="https://github.com/Noovolari/leapp"&gt;
        leapp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Leapp is the DevTool to access your cloud
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Noovolari/leapp.github/images/README-1.png#gh-dark-mode-only"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oMUWVxJ1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Noovolari/leapp.github/images/README-1.png%23gh-dark-mode-only" alt="Leapp" height="150"&gt;&lt;/a&gt;
    &lt;a rel="noopener noreferrer" href="https://github.com/Noovolari/leapp.github/images/README-1-dark.png#gh-light-mode-only"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--APrlVCmq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Noovolari/leapp.github/images/README-1-dark.png%23gh-light-mode-only" alt="Leapp" height="150"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h1&gt;
Leapp&lt;/h1&gt;
&lt;h4&gt;
  &lt;a href="https://www.leapp.cloud" rel="nofollow"&gt;Website&lt;/a&gt; |
  &lt;a href="https://roadmap.leapp.cloud/tabs/4-in-progress" rel="nofollow"&gt;Roadmap&lt;/a&gt; |
  &lt;a href="https://medium.com/leapp-cloud" rel="nofollow"&gt;Blog&lt;/a&gt; |
  &lt;a href="https://join.slack.com/t/noovolari/shared_invite/zt-opn8q98k-HDZfpJ2_2U3RdTnN~u_B~Q" rel="nofollow"&gt;TOPS community&lt;/a&gt; |
  &lt;a href="https://docs.leapp.cloud" rel="nofollow"&gt;Documentation&lt;/a&gt; |
  &lt;a href="https://docs.leapp.cloud/latest/troubleshooting/app-data/" rel="nofollow"&gt;Troubleshooting&lt;/a&gt;
&lt;/h4&gt;
&lt;p&gt;
  &lt;a href="https://lgtm.com/projects/g/Noovolari/leapp/context:javascript" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/aa3af19b630084b8944635611edf990f79c585da0fb9f109df6172fd02083535/68747470733a2f2f696d672e736869656c64732e696f2f6c67746d2f67726164652f6a6176617363726970742f672f4e6f6f766f6c6172692f6c656170702e7376673f6c6f676f3d6c67746d266c6f676f57696474683d3138" alt="Javascript"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/Noovolari/leapp/blob/master/LICENSE"&gt;&lt;img alt="License" src="https://camo.githubusercontent.com/fbb89fe2744f8da27ff3b967a520c395b481da7b6c9d8b17ffbc633344d2b605/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6e6f6f766f6c6172692f6c65617070"&gt;&lt;/a&gt;
  &lt;a href="https://join.slack.com/t/noovolari/shared_invite/zt-opn8q98k-HDZfpJ2_2U3RdTnN~u_B~Q" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/37b86a1c617512a425f6b7eef1cd5bb00e5a3d3ee0f59ae408f18d79309dca62/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736c61636b2d6f6e6c696e652d677265656e" alt="Slack"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/182c8c6fa882b663ce9380449518dbf0d8d1532be4ec6e91c52a8a33072478a1/68747470733a2f2f64336f35396173613875646371392e636c6f756466726f6e742e6e65742f636f7665726167652d6261646765732f636f72652d6261646765732e737667"&gt;&lt;img src="https://camo.githubusercontent.com/182c8c6fa882b663ce9380449518dbf0d8d1532be4ec6e91c52a8a33072478a1/68747470733a2f2f64336f35396173613875646371392e636c6f756466726f6e742e6e65742f636f7665726167652d6261646765732f636f72652d6261646765732e737667"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b314f653259d50b1d5240cf7a0ff5c189f33db4f1e4c380af90dcbe407513bec/68747470733a2f2f64336f35396173613875646371392e636c6f756466726f6e742e6e65742f636f7665726167652d6261646765732f636c692d6261646765732e737667"&gt;&lt;img src="https://camo.githubusercontent.com/b314f653259d50b1d5240cf7a0ff5c189f33db4f1e4c380af90dcbe407513bec/68747470733a2f2f64336f35396173613875646371392e636c6f756466726f6e742e6e65742f636f7665726167652d6261646765732f636c692d6261646765732e737667"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;⚡ Lightning Fast, Safe, Desktop App for Cloud credentials managing and generation&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Leapp&lt;/strong&gt; is a Cross-Platform Cloud access App, built on top of &lt;a href="https://github.com/electron/electron"&gt;Electron&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The App is designed to &lt;strong&gt;manage and secure Cloud Access in multi-account environments,&lt;/strong&gt; and it is available for MacOS, Windows, and Linux.&lt;/p&gt;
&lt;p&gt;For more information about features go to &lt;a href="https://docs.leapp.cloud/" rel="nofollow"&gt;our documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/Noovolari/leapp.github/images/Leapp-animation.gif"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hL4O1sHM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/Noovolari/leapp.github/images/Leapp-animation.gif" alt="Web interface gif"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h1&gt;
✨ Features&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloud credentials generation in 1 click&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data &lt;a href="https://docs.leapp.cloud/latest/security/system-vault/" rel="nofollow"&gt;stored locally encrypted&lt;/a&gt; in the OS System Vault&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple Cloud-Access supported &lt;a href="https://docs.leapp.cloud/latest/configuration/" rel="nofollow"&gt;strategies&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic &lt;a href="https://docs.leapp.cloud/latest/security/credentials-generation/aws/" rel="nofollow"&gt;short-lived credentials rotation&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic provisioning of &lt;a href="https://docs.leapp.cloud/latest/sessions/" rel="nofollow"&gt;Sessions&lt;/a&gt; from &lt;a href="https://docs.leapp.cloud/latest/configuring-integration/configure-aws-single-sign-on-integration/" rel="nofollow"&gt;AWS Single Sign-on&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Connect to EC2 instances straight away&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Managing Leapp with its &lt;a href="https://docs.leapp.cloud/latest/cli/" rel="nofollow"&gt;CLI&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.leapp.cloud/0.14.1/plugins/plugins-introduction/" rel="nofollow"&gt;Create your own Leapp plugin&lt;/a&gt;&lt;/strong&gt; to customize the App functionalities from the &lt;a href="https://github.com/Noovolari/leapp-plugin-template"&gt;template&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All the covered access methods can be found &lt;a href="https://docs.leapp.cloud/latest/configuration/" rel="nofollow"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;
Download&lt;/h1&gt;
&lt;p&gt;You can find all the information needed to download and install Leapp…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Noovolari/leapp"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h1&gt;
  
  
  Leapp and AWS Single Sign-On
&lt;/h1&gt;

&lt;p&gt;Leapp is a DevTool to increase productivity for everyone that will work with Programmatic access to the Cloud.&lt;/p&gt;

&lt;p&gt;With Leapp, you can store all personal information, such as &lt;code&gt;aws_access_key_id&lt;/code&gt;, &lt;code&gt;aws_secret_access_key&lt;/code&gt;, and AWS SSO &lt;code&gt;ACCESS TOKEN&lt;/code&gt;, in a secure, encrypted place inside your local system.&lt;/p&gt;

&lt;p&gt;Leapp integrates AWS Single Sign-On is really a one Click process and automatically generate ALL the Session that a Developer can access, from a single view:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--__vVaNyG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610448655049/Dp02LV8Ag.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--__vVaNyG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1610448655049/Dp02LV8Ag.gif" alt="AWS SSO.gif" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An important point here is that Leapp generates only short-lived temporary credentials in the &lt;code&gt;~/.aws/**&lt;/code&gt; files, in the straightforward form, with AWS access key, AWS secret key, and AWS access token.&lt;/p&gt;

&lt;p&gt;By doing so, this makes every credential generated from AWS Single Sign-On with Leapp fully compatible with every Library and project that uses Programmatic access to AWS.&lt;/p&gt;

&lt;p&gt;Also, AWS Single Sign-On is not the only credentials method supported by Leapp at the moment; it manages and also secures &lt;a href="https://medium.com/leapp-cloud/aws-sso-vs-cross-account-role-based-iam-access-why-and-how-to-use-roles-2521517d28e1"&gt;IAM Users, cross-account Role-based Access&lt;/a&gt;, and &lt;a href="https://medium.com/leapp-cloud/how-to-saml-federate-your-aws-account-with-g-suite-6619f6b35507"&gt;federated Access through GSuite&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Isolate workloads have become a good practice in AWS, and create an AWS Organization has become a standard in the last years.&lt;/p&gt;

&lt;p&gt;How to access multiple and heterogeneous accounts has always been an overhead that has been simplified with AWS SSO.&lt;/p&gt;

&lt;p&gt;But to me, is always important to keep an eye on the security side and that's why I would choose Leapp over accessing via the CLI directly.&lt;/p&gt;

&lt;p&gt;If you aren't sure if the AWS Organization is the best option for you, I think the article of &lt;a href="https://cloudonaut.io/use-multiple-aws-accounts-but-keep-it-simple/"&gt;Cloudonaut&lt;/a&gt; is a must-read for you.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>github</category>
      <category>cloud</category>
    </item>
    <item>
      <title>AWS SSO VS Cross-account role-based IAM access. Why and how to use roles?</title>
      <dc:creator>Andrea Cavagna | AWS builder</dc:creator>
      <pubDate>Mon, 12 Oct 2020 14:56:34 +0000</pubDate>
      <link>https://dev.to/a_cava94/aws-sso-vs-cross-account-role-based-iam-access-why-and-how-to-use-roles-kb2</link>
      <guid>https://dev.to/a_cava94/aws-sso-vs-cross-account-role-based-iam-access-why-and-how-to-use-roles-kb2</guid>
      <description>&lt;p&gt;Considered to be the best practices in AWS, one of the most popular ways to maximize AWS's potential is to utilize multiple accounts.&lt;/p&gt;

&lt;p&gt;An account enables you to run multiple workloads and draw a line on three crucial aspects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Billing and Cost Management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identity and Access Management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Limit Resources and API Request Management&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Firstly, AWS encouraged creating multiple accounts, developed Consolidated billing to group all the billings of an AWS environment.&lt;/p&gt;

&lt;p&gt;Then, in 2017, it introduced &lt;strong&gt;AWS Organization.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If we focus on IAM and access management, with Organization, AWS SSO has come as a gamechanger for a large number of situations.&lt;/p&gt;

&lt;p&gt;Anyway, there are many circumstances where applying this kind of structure doesn't fit the needs, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Large Companies&lt;/strong&gt;, where the Identity Provider is locked up in many sub-companies: as the company grows, or if a company with his Identity Provider got acquired into another, unifying access in a single point can be significant pain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consulting partners:&lt;/strong&gt; If you are a consulting partner, you probably have to isolate Organizations for each customer you have, which can't be done with a single organization and a single AWS SSO. Moreover, in the case of reselling, centralized billing and reserved instances at the organization level doesn't work, too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More than 50 accounts Organizations:&lt;/strong&gt; the need of getting isolation for the workflows through accounts is difficult to achieve, and the danger of a blast radius in case of breaches is enormous.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even if AWS SSO provides several benefits, in such cases, the problem of managing multiple-account access remains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also, using AWS SSO is not permitted if you are not the owner of ALL the accounts. This situation will cut out smaller companies acquired by bigger companies.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The downside to using multiple accounts, without organization, is the necessity to provide various logins to each person that needs access.&lt;/p&gt;

&lt;p&gt;For example, each DevOps Engineer may have credentials to their sandbox account, internal company accounts, developer accounts, and client accounts.&lt;/p&gt;

&lt;p&gt;Providing a security best practice, such as password rotation or not reusing the same password between more accounts, could be challenging to apply.&lt;/p&gt;

&lt;p&gt;To manage this situation better, the help of STS and cross-account role-based IAM access is crucial.&lt;/p&gt;

&lt;h1&gt;
  
  
  Cross-account role-based IAM access
&lt;/h1&gt;

&lt;p&gt;A single IAM Role can have specific permissions (i.e. development-role, marketing-role) into a single account.&lt;/p&gt;

&lt;p&gt;Then an IAM user can access a different account with a specific IAM role through STS with the AssumeRole action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the turning point.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now isolate a group of accounts where a single organization entity manages access individually.&lt;/p&gt;

&lt;p&gt;Now isolating the environment in a workload is easy and it respects compliance. But still there are many topics to pay attention to.&lt;/p&gt;

&lt;h2&gt;
  
  
  The environment
&lt;/h2&gt;

&lt;p&gt;Let's start from the beginning.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS IAM...
&lt;/h2&gt;

&lt;p&gt;If you still don't know what Identity and Access Management (IAM) are, here's a quick recap:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AWS Identity and Access Management (IAM) enables you to manage access to AWS services and resources securely. Using IAM, you can create and manage AWS users and groups, and use permissions to deny their access to AWS resources.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So basically, it is the AWS framework that lets you decide who can access what on your account. Mastering this service is the first step in securing your AWS account, but let's see what IAM users are and why they are important.&lt;/p&gt;

&lt;h2&gt;
  
  
  ... Users!
&lt;/h2&gt;

&lt;p&gt;This is the most widespread and easy access method in all AWS.&lt;/p&gt;

&lt;p&gt;An AWS Identity and Access Management (IAM) User is an entity you create in AWS to represent the person or application that leverages the account to interact with AWS. A user in AWS consists of a name and credentials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With a User, we are going to represent each person that has to access the Cloud services.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This user should have only permission to assume some particular role in other accounts, so he becomes the permission manager on what account each developer can access to.&lt;/p&gt;

&lt;h3&gt;
  
  
  ... Roles
&lt;/h3&gt;

&lt;p&gt;A Role is the most versatile entity in AWS IAM.&lt;/p&gt;

&lt;p&gt;An IAM role is an IAM identity you can create in your account that has specific permissions.&lt;/p&gt;

&lt;p&gt;The fact that it is an AWS identity with permission policies that determine what the identity can and cannot do in AWS, makes it similar to an IAM User&lt;/p&gt;

&lt;p&gt;However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone who needs it.&lt;/p&gt;

&lt;p&gt;We will manage what kind of permission it will have in an account at that particular moment with roles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f4IHDRNq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602507978194/K-_iIeEdV.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f4IHDRNq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602507978194/K-_iIeEdV.png" alt="iam-flow.png" width="880" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So let's start!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to manage infrastructure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  On a Gateway account.. (AWS Account "A")
&lt;/h3&gt;

&lt;p&gt;We will create a User that will serve as a bridge to all other AWS accounts the person with this User needs to reach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eCMlDNoj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508061736/J2Ua_nMyq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eCMlDNoj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508061736/J2Ua_nMyq.png" alt="iamuser.png" width="880" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firstly create the User and then attach a policy with the only permission to assume a role in another account.&lt;/p&gt;

&lt;p&gt;The AWS policy should be like the one below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;2012-10-17&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Statement&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Effect&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Allow&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Action&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sts:AssumeRole&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Resource&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;arn:aws:iam::123456789012:role/developer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;With this policy, we are permitting the user "john.doe" to assume the role of "developer" in the account "123456789012".&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  On the Truster account.. (AWS Account "B")
&lt;/h3&gt;

&lt;p&gt;Now switch on the landing account ("Account B") and create a role that the user &lt;strong&gt;"john.doe"&lt;/strong&gt; can assume.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_uiRv8CR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508106585/YmuJO4OHt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_uiRv8CR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508106585/YmuJO4OHt.png" alt="iamrole.png" width="880" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;N.B. remember to specify the truster identity, with the account id of the Gateway Account.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, add the permission needed for the specific role.&lt;/p&gt;

&lt;p&gt;Through this simple tutorial, we have allowed "john.doe" to access the "developer" role in the Truster account ("Account B")&lt;/p&gt;

&lt;h2&gt;
  
  
  What about the Developer side?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Adding the Gateway Account...
&lt;/h3&gt;

&lt;p&gt;On the developer side, at this point, the only credentials needed to access to every account are the &lt;strong&gt;"Access key I.D."&lt;/strong&gt; and &lt;strong&gt;"Secret access key"&lt;/strong&gt; of the User in the Gateway account ("Account A").&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Storing that info in a secure and encrypted place in your local system is essential. &lt;br&gt;
&lt;strong&gt;That's how Leapp comes to help.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Leapp is going to save &lt;strong&gt;"Access key I.D."&lt;/strong&gt; and &lt;strong&gt;"Secret access key"&lt;/strong&gt; in the System Vault (like &lt;strong&gt;"Keychain"&lt;/strong&gt; for MacOs, &lt;strong&gt;"Credential Vault"&lt;/strong&gt; for Windows, and managed by &lt;strong&gt;"Secret Service API/libsecret"&lt;/strong&gt; in Linux)&lt;br&gt;
That's the advantage of using Leapp over storing Credentials in the ~/.aws file*&lt;em&gt;.&lt;/em&gt;*&lt;/p&gt;

&lt;p&gt;In Leapp, under the &lt;strong&gt;"AWS"&lt;/strong&gt; provider and the &lt;strong&gt;"Plain"&lt;/strong&gt; access strategy, we are going to fill in all the needed info to connect to our Gateway Account:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZjG6jh_8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508175576/RGUKLmMgW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZjG6jh_8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508175576/RGUKLmMgW.png" alt="accounta.png" width="862" height="1202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now our credentials are secured, and we can create a credentials session with this User directly from the Desktop App.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Truster Account..
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;No more credentials are needed to access a role in a Truster account!&lt;/strong&gt;&lt;br&gt;
So, simply add a new session:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fVOQ7W47--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508208172/mafyaiN2Y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fVOQ7W47--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508208172/mafyaiN2Y.png" alt="addsession.png" width="852" height="1184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By selecting &lt;strong&gt;"Truster"&lt;/strong&gt; as an access strategy, you only have to add info about the account ("Account B") alias and number, then the role name you have to assume, in our case, &lt;strong&gt;"developer."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After doing so, we have to select the account Gateway ("Account A") from where we access the "developer" role.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---wuNXOX---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508236351/OhgflsFMb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---wuNXOX---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1602508236351/OhgflsFMb.png" alt="accountb.png" width="862" height="1194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Leapp, when the session is set to active, the App is going to call the &lt;strong&gt;STSAssumeRole&lt;/strong&gt; call to retrieve the pair of access key and secret key needed to work on the current role.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also, the credentials are frequently rotated without having to worry about them!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this article, we have described the right situation for the right environment.&lt;br&gt;
We walked through the configuration of Cross-account role-based IAM access both from the Manager and the Developer point of view.&lt;/p&gt;

&lt;p&gt;If you are interested, like us, in this topic, follow us on our  &lt;a href="https://medium.com/leapp-cloud"&gt;Medium Publication&lt;/a&gt;  for the second article of this series, which is coming the next week.&lt;/p&gt;

&lt;p&gt;P.S. Curious about Leapp?  &lt;a href="https://github.com/Noovolari/leapp"&gt;Check out the Repo&lt;/a&gt;  to meet the project and follow its development.&lt;/p&gt;

&lt;p&gt;%[&lt;a href="https://github.com/Noovolari/leapp"&gt;https://github.com/Noovolari/leapp&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Is this environment fitting with your company? Need any help in implementing it? &lt;br&gt;
feel free to contact me! &lt;/p&gt;

</description>
      <category>opensource</category>
      <category>aws</category>
      <category>tutorial</category>
      <category>cloud</category>
    </item>
    <item>
      <title>That’s why your next business have to be focused on Developers</title>
      <dc:creator>Andrea Cavagna | AWS builder</dc:creator>
      <pubDate>Mon, 21 Sep 2020 14:43:34 +0000</pubDate>
      <link>https://dev.to/a_cava94/that-s-why-your-next-business-have-to-be-focused-on-developers-4ijn</link>
      <guid>https://dev.to/a_cava94/that-s-why-your-next-business-have-to-be-focused-on-developers-4ijn</guid>
      <description>&lt;p&gt;Over the last twenty years, &lt;strong&gt;Saas&lt;/strong&gt; and &lt;strong&gt;Cloud&lt;/strong&gt; have been the two emerging technology sectors.&lt;/p&gt;

&lt;p&gt;Everything started with Saas. Salesforce went public 16 years ago, and many other companies have followed his example.&lt;/p&gt;

&lt;p&gt;This business model relies on the idea of changing the purchasing model by eliminating licensing, installing, and other pain of traditional software.&lt;br&gt;
&lt;a href="https://www.bvp.com/bvp-nasdaq-emerging-cloud-index"&gt;Today the value of SaaS solutions exceeds $1.7 trillion&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Then public Cloud has risen after the launch of AWS by Amazon, Azure by Microsoft, and GCP by Google.&lt;/p&gt;

&lt;p&gt;Many companies started building their software and business in Cloud. &lt;/p&gt;

&lt;p&gt;Now a new emerging sector is growing: &lt;strong&gt;developer-driven software&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Unlike in the past that languished due to developers' inability to pay for expensive, "packaged" tools, these newer products are available online, often free, open-source, or at low cost, and shared widely across the global developer community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open-sourcing enables a community of developers to improve functionalities over time&lt;/strong&gt;, providing public APIs and SDKs that make the product flexible to fit into many companies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--48DAqXeL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600267581428/1z9VqT2LJ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--48DAqXeL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600267581428/1z9VqT2LJ.png" alt="image.png" width="880" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Developer-driven software
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;Every company is a technology company, no matter what product or service it provides. The companies that embrace this fact are the ones that shape our world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Says Stephenie Stone, in &lt;a href="https://www.forbes.com/sites/forbestechcouncil/2017/01/23/why-every-company-is-a-technology-company/#63ddf07857ae"&gt;"Why Every Company Is A Technology Company"&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;That's why developers are impacting more and more in the business model of a company. &lt;/p&gt;

&lt;p&gt;From a tech point of view, the market of companies that aim to help power software development will grow significantly.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://evansdata.com/press/viewRelease.php?pressID=278"&gt;Evans Data Corporation&lt;/a&gt;, there were &lt;strong&gt;26,4 million software developers in the world in 2019&lt;/strong&gt;, a number that in 2023 is expected to grow to 27,7 million and 28.7 million in 2024. The USA is taking the leading position by the number of software developers reached 4,2 million.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--md4QKH-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600441184627/Dc4fs6aMG.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--md4QKH-G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600441184627/Dc4fs6aMG.png" alt="image.png" width="700" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this increasing number of developers, every time you have to start building a business and thinking about a business model, you have to start thinking about developers. &lt;/p&gt;

&lt;p&gt;But the problem is: how are companies supposed to generate millions in revenue selling to developers?&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Developers have not budgeted in a company to improve software development. *&lt;/em&gt;&lt;br&gt;
They are looking for free or open-source software that can help them accomplish their goals.&lt;/p&gt;

&lt;p&gt;The answer starts with winning the hearts and minds of developers before trying to sell them anything. If they adopt the product, they can contribute, use it, and spread it across the community.&lt;/p&gt;

&lt;p&gt;So, how to generate revenue in this situation? Three business models have successfully appeared to commercialize developers love:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Freemium &lt;/li&gt;
&lt;li&gt;API-based services&lt;/li&gt;
&lt;li&gt;Commercial Open-Source (COSS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's analyze them better:&lt;/p&gt;

&lt;p&gt;## Freemium&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Freemium is a two-tiered user acquisition model&lt;/strong&gt;, where a slight version of a product is available for free or in free-trial to help the adoption.&lt;/p&gt;

&lt;p&gt;The main goal of this acquisition model is to decrease &lt;a href="https://blog.hubspot.com/service/what-does-cac-stand-for?hubs_signup-url=blog.hubspot.com/service/freemium&amp;amp;hubs_signup-cta=null"&gt;customer acquisition cost (CAC) &lt;/a&gt; for the product.&lt;/p&gt;

&lt;p&gt;Freemium aims to create several loyal users and then &lt;strong&gt;transform them into paying customers&lt;/strong&gt; as a next challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If many developers can try out the free part of the product, the opportunity arises to build a large, engaged customer base.&lt;/li&gt;
&lt;li&gt;Avoid overspending on paid marketing channels and focus more on building trust in the product.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You have to convince the development team to a paid model.&lt;/li&gt;
&lt;li&gt;Competitors can copy the freemium version, but offering more for free, undercutting a well-thought-out revenue model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Winning Example
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LBicB81b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600683979787/eU41KKBKz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LBicB81b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600683979787/eU41KKBKz.png" alt="image.png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Slack is a company that has fully exploited the benefits of a Freemium business model.&lt;br&gt;
Slack started as a product &lt;a href="https://growthhackers.com/growth-studies/slack-fastest-growing-b2b-saas-business-ever"&gt;"built by developers for developers."&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app's basic functionality has always been free, and only a part of the software comes in a paid solution.&lt;/p&gt;

&lt;p&gt;Slack's win situation is that many Developers start using Slack and tell other colleagues and people in their communities, accelerating the product's flywheel.&lt;/p&gt;

&lt;p&gt;But for sure, the difficult part is to get the flywheel spinning in the first place; developers still have to know the product and try it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  API-based services
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;p&gt;In most cases, APIs are the building block of a product. &lt;/p&gt;

&lt;p&gt;The goal is to accomplish critical functionality commonly used by developers quickly and flexibly, so tasks such as payment processing or messaging.&lt;/p&gt;

&lt;p&gt;The most critical problem for a developer is always time, with many pressured releases and strict specs to follow. &lt;/p&gt;

&lt;p&gt;There are three different charge service fees commonly used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;subscription fees (developers pay a monthly fee)&lt;/li&gt;
&lt;li&gt;consumption fees (developers pay a fee each time the API is called)&lt;/li&gt;
&lt;li&gt;transaction fees (developer pay a percentage of each purchase completed via API)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;APIs are flexible enough to cover most of the common cases that a developer needs.
To do so, you have to listen closely to what they need and educate developers in forums, conferences, and virtual events.&lt;/li&gt;
&lt;li&gt;By integrating an API into a product, it will produce a stable stream revenue.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Some developers can eventually decide to build their API to emulate the third party API into their products.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Winning Example
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bhFoptPy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600684031502/iFD8SNAHU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bhFoptPy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600684031502/iFD8SNAHU.png" alt="image.png" width="880" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stripe was created with the primary goal of making the implementation of payment systems easier.&lt;/p&gt;

&lt;p&gt;Stripe makes it easier for everyone to make and receive payments. It allows developers to start creating and accepting payments by adding a few code lines to their product.&lt;/p&gt;

&lt;p&gt;The leading cause of their success is that it offers a payment system simple, straight-forward, and easy to implement (and documented through the most well-written Docs I’ve read by far).&lt;/p&gt;

&lt;p&gt;They focus on making the product developer-focused, and by doing so, they beat all other competitors.&lt;/p&gt;

&lt;p&gt;The company's first funding was provided by Paul Graham, the founder of Y Combinator. &lt;br&gt;
This seed of investment of $2 million helped to get the ball rolling on Stripe. The service became an immediate success. By 2014, Stripe was processing &lt;a href="https://www.independent.ie/business/technology/stripe-collison-brothers-who-built-1bn-tech-firm-wont-cash-out-29945739.html"&gt;billions in transaction volume&lt;/a&gt; and present in over 12 countries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Commercial Open-Source (COSS)
&lt;/h2&gt;

&lt;p&gt;Last but not least, the most complex and intriguing one.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;p&gt;COSS is not a development-driven business model, but most of the code is written by the dev community while addressing to the dev community itself&lt;/p&gt;

&lt;p&gt;In this business model, the core of the product is open and can be developed by anyone. Then only some premium features will be charged at the middle-enterprise level.&lt;/p&gt;

&lt;p&gt;Many developer users may also contribute to an open-source product or other integration of it, making the core product more useful and valuable.&lt;/p&gt;

&lt;p&gt;Frequently, the paid section of a product comprises enterprise features that include security and governance (such as SSO access to the product), collaboration, or high-availability.&lt;/p&gt;

&lt;p&gt;Each company that is approaching this business model has a clear and transparent roadmap to all the community.&lt;/p&gt;

&lt;p&gt;The trick is to provide useful functionality in the open core, so developers rally around the product, creating a groundswell of enthusiastic users.&lt;/p&gt;

&lt;p&gt;Rarely do open source projects gain rapid user adoption on their own. &lt;br&gt;
Expect that only because the project is on GitHub is gaining attention is not right.&lt;br&gt;
Marketing, communication, and content have to be structurally changed from other business models.&lt;/p&gt;

&lt;p&gt;Developers have to trust your project as the first thing. So you have to participate as many conferences as you can, host meetup, do technical conferences, communicate with other developers, and to respond to feedback on social media.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Lower friction to developer adoption.&lt;/li&gt;
&lt;li&gt;Adoption rely on &lt;a href="https://blogs.constantcontact.com/what-is-word-of-mouth"&gt;Word of Mouth&lt;/a&gt;, not conventional marketing&lt;/li&gt;
&lt;li&gt;If the open-source product gain attention, you don't have to take massive marketing at the enterprise level. Developers of the company will push themself to the adoption of the product.&lt;/li&gt;
&lt;li&gt;Create a virtuous cycle between technology innovation and business innovation. More people use the product means more feedback, that means more support to give, more premium feature, and so on. (We will talk about this in another article later)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You have to manage to distinct Roadmap, one for the open product, and one for the close product. It is essential to be clear from the beginning&lt;/li&gt;
&lt;li&gt;The adoption is slower than a Close source product. So it is fundamental for the product to find someone that believes and invests in the project.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Winning example
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--svEOH6lZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600684058088/nIZFkxdy9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--svEOH6lZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1600684058088/nIZFkxdy9.png" alt="image.png" width="880" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hashicorp is a company born in 2012 from an open-source project of Mitchell Hashimoto and Armon Dadgar. &lt;/p&gt;

&lt;p&gt;And as he said: "We started the projects and never planned on making a company. It's totally fine that some people have ideas, and they do it to start a business, and that's normal."&lt;/p&gt;

&lt;p&gt;Hashicorp bases his platform on the open-core product with specific enterprise features, with the goal to provision, secure, connect, and run any infrastructure for any application.&lt;/p&gt;

&lt;p&gt;As Glenn Solomon says in &lt;a href="https://www.forbes.com/sites/glennsolomon/2020/07/14/the-next-1-trillionthree-ways-to-win-developers-hearts-and-minds/#d96059657442"&gt;"The Next $1 Trillion - Three Ways To Win Developers' Hearts And Minds"&lt;/a&gt; :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I invested in HashiCorp in 2014 and remembered the founders flying 250,000 miles a year back then just to visit developers at conferences, and spending thousands of hours working with them to gain insights from users about HashiCorp's early products.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is exactly what is needed to gain popularity in an open-project.&lt;/p&gt;

&lt;p&gt;Now the company is rising in the world of the Multi-Cloud:&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Some months ago, a couple of friends and I started a long journey with an idea in mind: turning a project we strongly believed in into action.&lt;/p&gt;

&lt;p&gt;Finally.&lt;br&gt;
We sifted through many and many ideas trying to figure out which business model would be the best to support our rising product idea, intending to create something valuable and useful to help developers and companies to improve their work experience.&lt;/p&gt;

&lt;p&gt;We came out with this and many other thoughts on which is the best sector and business model to be applied when you are working on creating a B2B product focused on Tech, and we are happy to share all this with you.&lt;/p&gt;

&lt;p&gt;Are you starting your new product? Hope this can be the first step in your journey towards the success &lt;/p&gt;

&lt;h3&gt;
  
  
  References:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.forbes.com/sites/glennsolomon/2020/07/14/the-next-1-trillionthree-ways-to-win-developers-hearts-and-minds/#63a34f0b5744"&gt;https://www.forbes.com/sites/glennsolomon/2020/07/14/the-next-1-trillionthree-ways-to-win-developers-hearts-and-minds/#63a34f0b5744&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.forbes.com/sites/glennsolomon/2020/09/15/monetizing-open-source-business-models-that-generate-billions/#58737f4f34fd"&gt;https://www.forbes.com/sites/glennsolomon/2020/09/15/monetizing-open-source-business-models-that-generate-billions/#58737f4f34fd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>startup</category>
      <category>freemium</category>
    </item>
    <item>
      <title>Single-sign-on with G Suite on the Amazon Web Services console</title>
      <dc:creator>Andrea Cavagna | AWS builder</dc:creator>
      <pubDate>Wed, 09 Oct 2019 15:46:04 +0000</pubDate>
      <link>https://dev.to/a_cava94/single-sign-on-with-g-suite-on-the-amazon-web-services-console-57ck</link>
      <guid>https://dev.to/a_cava94/single-sign-on-with-g-suite-on-the-amazon-web-services-console-57ck</guid>
      <description>&lt;p&gt;Which AWS console user has never run into the age-old problem of &lt;strong&gt;managing multiple users on multiple accounts&lt;/strong&gt;, having to create different IAM users — with complex passwords for each of them — on top of the highly fundamental (but, let’s be honest, decidedly inconvenient) &lt;strong&gt;two-factor-authentication&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;And on the topic of two-factor-authentication, assuming that you don’t want to use a dedicated hardware token for every single IAM user, the choice is almost totally limited to &lt;a href="https://en.wikipedia.org/wiki/Google_Authenticator"&gt;&lt;strong&gt;Google Authenticator&lt;/strong&gt;&lt;/a&gt;, with codes and QR codes that proliferate like mushrooms and that become difficult to safeguard from adverse smartphone-related events (theft, loss, breakage, backup, changing device…).&lt;/p&gt;

&lt;p&gt;AWS actually offers &lt;a href="https://aws.amazon.com/blogs/aws/new-cross-account-access-in-the-aws-management-console/"&gt;&lt;strong&gt;a cross-account access service&lt;/strong&gt;&lt;/a&gt; for its management console, which, however, has several limitations, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  the maximum limit of 5 manageable AWS accounts &lt;strong&gt; [UPDATE: this limit has been removed :)]&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;  being based on the cookies of the browser used to log into it (if we change browsers or delete the cache, everything gets reset);&lt;/li&gt;
&lt;li&gt;  its requirement for at least one “master” IAM user to start with, which requires dedicated login and TFA credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most appropriate response to the need to centrally manage users and login details, for AWS as well as for the vast majority of applications that need multi-user authentication, is called &lt;strong&gt;Single-sign-on&lt;/strong&gt; (SSO).&lt;/p&gt;

&lt;p&gt;Typically, the SSO mechanism is based on an &lt;a href="https://en.wikipedia.org/wiki/Identity_provider"&gt;&lt;strong&gt;Identity Provider&lt;/strong&gt;&lt;/a&gt; (a centralised repository of all corporate identities with their attributes — username, password, groups, roles, etc…) and a series of Service Providers (applications where users can log in with their corporate identities) that are federated to the Identity Provider with strong &lt;em&gt;trust&lt;/em&gt; relationships that are typically based on shared keys, certificates or tokens. This allows users to use a single user profile (and therefore a single password and a single TFA), which is centrally managed, to log into all the applications that have been enabled for them.&lt;/p&gt;

&lt;p&gt;Although Service Providers can be the most disparate of applications (Web, desktop, mobile, remote access, CLI, API etc…), Identity Providers are almost always &lt;a href="https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol"&gt;&lt;strong&gt;LDAP&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; or &lt;/strong&gt;&lt;a href="https://en.wikipedia.org/wiki/Active_Directory"&gt;&lt;strong&gt;Microsoft Active Directory servers&lt;/strong&gt;&lt;/a&gt;. Specifically, MS AD is the de facto standard in most highly-structured companies for corporate identity management, and it is therefore supported by default by all applications that require the option of using SSO.&lt;/p&gt;

&lt;p&gt;However, it is not that common to find an MS AD infrastructure implemented (but this also applies partly to LDAP), especially in smaller, younger or more agile businesses, for reasons ranging from cost to complexity of management (especially if they are in need of a highly reliably provided AD service), without ignoring the fact that MS AD is typical of Microsoft-centric companies (almost all the large legacy companies) and is therefore less prevalent where the client base is more varied (Windows+Mac+Linux…).&lt;/p&gt;

&lt;p&gt;A very widespread trend in businesses is to use the company Google Apps account (recently renamed to &lt;a href="https://gsuite.google.com/"&gt;G Suite&lt;/a&gt;) — a widely-used service mostly used for its email and collaboration functions — as an Identity Provider. By doing so, you can use SSO on a multitude of applications that already natively support the “login with Google” function, but also on those (as is the case with the AWS console) that support the &lt;a href="https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language"&gt;SAML standard&lt;/a&gt;, which G Suite has been providing the service of Identity Provider for for around a year.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A2NLBwda--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A6oXNkTw5nxNT2rWCnx-sXg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A2NLBwda--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A6oXNkTw5nxNT2rWCnx-sXg.png" alt="Single-sign-on with G Suite on the Amazon Web Services console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So let’s see how to &lt;strong&gt;configure our AWS and G Suite accounts to make Single-Sign-On work with SAML.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First of all, in the G Suite administration page, we have to add custom attributes to our users, through which our Identity Provider (Google) will communicate the identity of the user logged in, as well as additional information that we will explain later, to the Service Provider (AWS).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EbP9A9cT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AbjCxdlwRtMkpCek-L_fSdQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EbP9A9cT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AbjCxdlwRtMkpCek-L_fSdQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now create a custom attribute class and call it “AWS SAML” and then create the attributes “IAM Role” and “SessionDuration”. It is important for both attributes to be private (that is, not viewable by all users in your organisation) and for the attribute “IAM Role” to support multiple values.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8gjQ7XyQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A35L1hXbWuckFFIaTCnz7rQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8gjQ7XyQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A35L1hXbWuckFFIaTCnz7rQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Hr0xI1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Ae6HGhVF76OpnS_ZXFI938g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Hr0xI1j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Ae6HGhVF76OpnS_ZXFI938g.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this done, go into the “Apps” section and add a new SAML application, starting with the preconfigured template for AWS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oZaLhlfa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AHoff7UXPLaNLRVN6FbQERw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oZaLhlfa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AHoff7UXPLaNLRVN6FbQERw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tU0Gja2C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2APSIc4Ntmu0zecPW8lhHWqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tU0Gja2C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2APSIc4Ntmu0zecPW8lhHWqw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Download (option 2) the IDP Metadata (which is an .xml file that contains some configuration parameters and the X509 certificate that the _trust_relationship between IdP and SP is based on) and set it aside for a later step.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;WARNING!!! The contents of this file should not be released for any reason; the security of the entire solution relies on its remaining confidential!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9wq1Eop7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AnkmVC1uNozb_UqVkHKTybg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9wq1Eop7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AnkmVC1uNozb_UqVkHKTybg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We continue the configuration by mapping the SAML entity known as “Name ID” on “Primary Email” (that is, the user will be presented to the AWS console with their email address as their unique identifier).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lW4alx4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AUM-xftqna6wjVwl6leTi2A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lW4alx4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AUM-xftqna6wjVwl6leTi2A.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next step, we need to configure three additional mappings (be careful, as here the G Suite UI is not very clear, as the URLs in the left column aren’t very legible):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The attribute &lt;a href="https://aws.amazon.com/SAML/Attributes/RoleSessionName"&gt;&lt;em&gt;https://aws.amazon.com/SAML/Attributes/RoleSessionName&lt;/em&gt;&lt;/a&gt;should be mapped to “Primary Email” again.&lt;/li&gt;
&lt;li&gt;  The attribute &lt;a href="https://aws.amazon.com/SAML/Attributes/Role"&gt;&lt;em&gt;https://aws.amazon.com/SAML/Attributes/Role&lt;/em&gt;&lt;/a&gt; should be mapped to the custom attribute “IAM role” that we created earlier. What we are doing with this is telling AWS which roles the user is authorised to take on and on which accounts.&lt;/li&gt;
&lt;li&gt;  The attribute &lt;a href="https://aws.amazon.com/SAML/Attributes/SessionDuration"&gt;&lt;em&gt;https://aws.amazon.com/SAML/Attributes/SessionDuration&lt;/em&gt;&lt;/a&gt;should be added, mapped to the custom attribute “SessionDuration” that we created earlier. Here, we are telling AWS how long the session of a particular user should last before they are automatically logged out.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lgSFZ8dU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AH1JI_PkCwbFOsHHDGVonGQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lgSFZ8dU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AH1JI_PkCwbFOsHHDGVonGQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is very useful to be able to customise this parameter because the default session is 1 hour long, which, for people who work quite a lot on the AWS console, is very short, leading to many inconvenient forced logouts during daily operations. &lt;strong&gt;WARNING!!! This “trick” is exclusive to beSharp; it is not documented in the official Google or AWS guides! (nda).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At this point, the configuration of G Suite is finished and we move on to the configuration of AWS.&lt;/p&gt;

&lt;p&gt;We go into the &lt;a href="https://aws.amazon.com/iam/"&gt;&lt;strong&gt;IAM&lt;/strong&gt;&lt;/a&gt; section –&amp;gt; Identity Providers and create a new one, SAML type, which we will call “GoogleApps”; at this point, we will have to upload the IdP metadata that we downloaded earlier (once the file is uploaded at this point, I suggest deleting it from your computer).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Il8d3RdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Avwjlg2GgtKsH3PjjLaJQfA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Il8d3RdH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Avwjlg2GgtKsH3PjjLaJQfA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9HT6_HMF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AHUkMlAzskSO9RiAcEo7vqA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9HT6_HMF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AHUkMlAzskSO9RiAcEo7vqA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_44PXLIU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A7ltXkNl3FoNuE_1CHiR02A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_44PXLIU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A7ltXkNl3FoNuE_1CHiR02A.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we create a new IAM role that we’ll call “GoogleLogin” and as the role type, select “Identity Provider Access” –&amp;gt; “WebSSO” and associate it with the “GoogleApps” Identity Provider we’ve just created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QifoFEia--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ABn1mtHo1kL-Q3iAiimfe4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QifoFEia--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ABn1mtHo1kL-Q3iAiimfe4w.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cQb9K4b3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AvT-Kp6b5Q31QVd94QksnVw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cQb9K4b3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AvT-Kp6b5Q31QVd94QksnVw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YTB3wK_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Aunmz8hjxZPK6atfk0GkFhQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YTB3wK_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Aunmz8hjxZPK6atfk0GkFhQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next steps of the wizard, we will associate a policy with the IAM role to provide the permissions (in our example we gave admin permissions — &lt;strong&gt;DON’T TRY THIS AT HOME!!!:) &lt;/strong&gt;) and the configuration on the AWS side is complete.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fhLTIpd6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AP4TZDCp0CsFSOJAk-1U89g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fhLTIpd6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AP4TZDCp0CsFSOJAk-1U89g.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FWJII8c6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A7ocolwe_g1IiUN6V7jcj9Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FWJII8c6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A7ocolwe_g1IiUN6V7jcj9Q.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0slFnovv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A-oNBOCe9cWm_nPMqLP22vA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0slFnovv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A-oNBOCe9cWm_nPMqLP22vA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we turn to the administration of G Suite, to assign individual users permissions according to which roles they can take and on which AWS accounts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iIvVRvvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Aktbr0zFf0u8DjYq_4E8mhg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iIvVRvvb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2Aktbr0zFf0u8DjYq_4E8mhg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the least intuitive part of the configuration: with regard to the roles and accounts that are accessible, AWS expect values like this from Google:&lt;/p&gt;

&lt;p&gt;arn:aws:iam::1234567891012:role/GoogleLogin,arn:aws:iam::1234567891012:saml-provider/GoogleApps&lt;/p&gt;

&lt;p&gt;As you can see, these are two &lt;a href="http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html"&gt;&lt;strong&gt;ARNs&lt;/strong&gt;&lt;/a&gt; separated by a comma. The first is the ARN of the role that that user can assume, the second is the ARN of the identity provider that we created within the AWS account. (The number 1234567891012 is a placeholder that must be replaced with the actual account number of your AWS account). This value must be entered in the custom field “IAM role” that we created earlier. This allows us to specify which role each user can take on and on which AWS account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IT53dajr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ANcfBJUZlrCtKVsr80S6Fng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IT53dajr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ANcfBJUZlrCtKVsr80S6Fng.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yKo5WPGr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ATp_ScVsjKyB5d_pjNMKtWA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yKo5WPGr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ATp_ScVsjKyB5d_pjNMKtWA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you remember, we made sure that the “IAM role” attribute supported multiple values; indeed, it is possible to specify multiple roles for the same user within the same account, or even on different accounts. Simply add more tuples such as:&lt;/p&gt;

&lt;p&gt;arn:aws:iam::112233445566:role/Ruolo1,arn:aws:iam::112233445566:saml-provider/GoogleApps&lt;br&gt;
arn:aws:iam::112233445566:role/Ruolo2,arn:aws:iam::112233445566:saml-provider/GoogleApps&lt;/p&gt;

&lt;p&gt;and immediately after logging in we will be asked which role we want to assume on which account.&lt;/p&gt;

&lt;p&gt;Of course, for everything to work properly, in our example we should also repeat the SAML federation process (exchanging the IdP metadata) for account 112233445566.&lt;/p&gt;

&lt;p&gt;In the custom field “SessionDuration”, you can specify the duration of the login session in seconds for each user. I suggest the value 28800, which corresponds to 8 hours: more or less a typical workday.&lt;/p&gt;

&lt;p&gt;At this point, all we have left to do is enable the SAML application that we created, and all users will find a new icon in their quick access menu for Google Apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VogX1jIw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AHNMfzDvIKosUYSEyjTyWZg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VogX1jIw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AHNMfzDvIKosUYSEyjTyWZg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We’ll log in with our test account “Mario Rossi” and, by clicking on the corresponding icon, we will magically be directed to the AWS console where, as you can see, we are logged in with our federated account, &lt;a href="mailto:m.rossi@besharp.net"&gt;m.rossi@besharp.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y5HCvyl---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A4YmV6a4CS36lTJHeib-iIQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y5HCvyl---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A4YmV6a4CS36lTJHeib-iIQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VWfb4BQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ADgzbV9ZJG948eyWBGzyBXQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VWfb4BQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2ADgzbV9ZJG948eyWBGzyBXQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Satisfied?&lt;/p&gt;

&lt;p&gt;In the next article, you will see how we used — in a very creative way — the same approach based on G Suite and SSO to use AWS services that require authentication using a key/secret pair, such as &lt;a href="https://aws.amazon.com/cli/"&gt;&lt;strong&gt;AWS CLI&lt;/strong&gt;&lt;/a&gt;, &lt;a href="https://aws.amazon.com/codecommit/"&gt;&lt;strong&gt;CodeCommit&lt;/strong&gt;&lt;/a&gt; and access to APIs from clients outside the VPC.&lt;/p&gt;

&lt;p&gt;In subsequent articles, on the other hand, we will further develop how to use G Suite as an Identity Provider for all the other services that would normally require a federation with Active Directory or LDAP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[09/09/2019 — UPDATE: You’ve spoken… and we’ve listened! Thanks to your hundreds of emails, tweets, and comments, we’ve understood that our solution could have helped many other developers and DevOps all around the globe. So, we are proud to present you Noovolari LookAuth!&lt;br&gt;
With LookAuth you can easily manage programmatic access via Single Sign-On with G Suite directly to all your Amazon Web Services Cloud accounts. Sign up today for the beta version, it’s FREE!]&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>gsuite</category>
      <category>sso</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
