{"id":106367,"date":"2020-02-26T06:00:27","date_gmt":"2020-02-26T14:00:27","guid":{"rendered":"https:\/\/www.paloaltonetworks.com\/blog\/?p=106367"},"modified":"2020-07-31T10:46:38","modified_gmt":"2020-07-31T17:46:38","slug":"cloud-iam-security","status":"publish","type":"post","link":"https:\/\/www2.paloaltonetworks.com\/blog\/2020\/02\/cloud-iam-security\/","title":{"rendered":"The Role of Identity Access Management (IAM) in Cloud Security"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">It has been well established that certain traditional IT security paradigms must be reimagined when approaching cloud native security. One component of a strong security posture takes on a particularly critical role in the cloud \u2013 identity. The concept of identity in the cloud can refer to many things, but for the purpose of this discussion, we\u2019ll focus on two main entities: users and cloud resources.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Historically, defense-in-depth was mostly performed through network-layer controls. Advanced threat prevention tools are able to recognize the applications that traverse the network and determine whether or not they should be allowed. This type of security is still very much required in cloud native environments, but it\u2019s no longer sufficient on its own.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Public cloud providers offer a rich portfolio of services, and the only way to govern and secure many of them is through identity and access management (IAM). In this blog we examine three specific challenges security teams face in regard to IAM, as well as guidance on remediation.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b>Identity and Access Management<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">IAM is a cloud service that controls the permissions and <\/span><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/2020\/01\/cloud-ueba\/\"><span style=\"font-weight: 400;\">access for users<\/span><\/a><span style=\"font-weight: 400;\"> and cloud resources. IAM policies are sets of permission policies that can be attached to either users or cloud resources to authorize what they access and what they can do with it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The concept \u201cidentity is the <\/span><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/2019\/12\/network-data-center-security\/\"><span style=\"font-weight: 400;\">new perimeter<\/span><\/a><span style=\"font-weight: 400;\">\u201d goes as far back as the ancient times of 2012, when AWS first announced their IAM service. We\u2019re now seeing a renewed focus on IAM due to the rise of abstracted cloud services and the recent wave of <\/span><a href=\"https:\/\/securityboulevard.com\/2020\/01\/2019-in-review-data-breach-statistics-and-trends\/\" rel=\"nofollow,noopener\" ><span style=\"font-weight: 400;\">high-profile data breaches<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Services that don\u2019t expose any underlying infrastructure rely heavily on IAM for security. For example, consider an application that follows this flow: a Simple Notification Service (SNS) topic triggers a Lambda function, which in turn puts an item in a DynamoDB table. In this type of application, there is no network to inspect, so identity and permissions become the most significant aspects of security.\u00a0<\/span><\/p>\n<figure id=\"attachment_106385\" aria-describedby=\"caption-attachment-106385\" style=\"width: 624px\" class=\"wp-caption alignleft\"><div style=\"max-width:100%\" data-width=\"624\"><span class=\"ar-custom\" style=\"padding-bottom:18.43%;\"><img loading=\"lazy\" decoding=\"async\"  class=\"size-full wp-image-106385 lozad\"  data-src=\"https:\/\/www.paloaltonetworks.com\/blog\/wp-content\/uploads\/2020\/02\/image1-4.png\" alt=\"Alt Text\/Description: This example application flow shows how a simple notification service topic triggers a Lambda function, which in turn puts an item in a DynamoDB table. \" width=\"624\" height=\"115\" \/><\/span><\/div><figcaption id=\"caption-attachment-106385\" class=\"wp-caption-text\">Figure 1: Example application flow<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">As an example of the impact of a strict (or over-permissive) IAM profile, let\u2019s consider the Lambda function. The function is only supposed to put items in the DynamoDB table. What happens if the function has full DynamoDB permissions? If the function is compromised for whatever reason, the DynamoDB table is immediately compromised as well, since the function could be leveraged to exfiltrate data.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If the IAM profile follows the \u201cleast-privilege\u201d principle and only allows the function to put items in the table, the blast radius will be greatly reduced in the case of an incident. A hands-on example of this can be found in this <\/span><a href=\"https:\/\/www.cncf.io\/webinars\/securing-your-serverless-journey\/\" rel=\"nofollow,noopener\" ><span style=\"font-weight: 400;\">CNCF webinar.<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Managing a large number of privileged users with access to an ever-expanding set of services is challenging. Managing separate IAM roles and groups for these users and resources adds yet another layer of complexity. Cloud providers like AWS and Google Cloud help customers solve these problems with tools like the Google Cloud IAM recommender (currently in beta) and the AWS IAM access advisor. These tools attempt to analyze the services last accessed by users and resources, and help you find out which permissions might be over-privileged.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">These tools indicate that cloud providers recognize these access challenges, which is definitely a step in the right direction. However, there are a few more challenges we need to consider.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b>Identity and Access Challenges<\/b><\/h2>\n<h4>IAM and SSO<\/h4>\n<p><span style=\"font-weight: 400;\">Most businesses today use some form of single sign-on (SSO), such as Okta, to manage the way users interact with cloud services. This is an effective way of centralizing access across a large number of users and services. While using SSO to log into public cloud accounts is definitely the best practice, the mapping between SSO users and IAM roles can become challenging, as users can have multiple roles that span several cloud accounts.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h4>Effective permissions<\/h4>\n<p><span style=\"font-weight: 400;\">Considering that users and services have more than one permission set attached to them, understanding the effective permissions of an entity becomes difficult.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cWhat can Mary access? Which actions can she perform on these services? If she accesses a virtual machine, does she inherit the IAM permissions of that resource? Is she part of a group that grants her additional permissions?\u201d With layers upon layers of configurations and permission profiles, questions like these become difficult to answer.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h4>Multi-cloud<\/h4>\n<p><span style=\"font-weight: 400;\">According to <\/span><a href=\"https:\/\/resources.flexera.com\/web\/media\/documents\/rightscale-2019-state-of-the-cloud-report-from-flexera.pdf\" rel=\"nofollow,noopener\" ><span style=\"font-weight: 400;\">RightScale<\/span><\/a><span style=\"font-weight: 400;\">, more than 84% of organizations use a multi-cloud strategy. Each provider has its own policies, tools and terminology. There is no common language that helps you understand relationships and permissions across cloud providers.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b>Getting IAM Security Right<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">IAM is only one, albeit crucial, aspect of cloud security. Businesses must look at IAM as a part of their overall security posture and add an integrated layer of security across their application lifecycle. We\u2019d be remiss if we didn\u2019t mention that this is where a <\/span><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/2019\/12\/cloud-native-security-platform-age\/\"><span style=\"font-weight: 400;\">Cloud Native Security Platform<\/span><\/a><span style=\"font-weight: 400;\"> such as Prisma Cloud would come in handy.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cloud providers deliver a great baseline for implementing a least-privileged approach to permissions. As cloud adoption scales in your organization, the challenges mentioned above and more will become apparent, and you might need to look at multi-cloud solutions to solve them. As a starting point:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Don\u2019t use root accounts<\/b><span style=\"font-weight: 400;\"> - Always create individual IAM users with relevant permissions, and don\u2019t give your root credentials to anyone.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Adopt a role-per-group model<\/b><span style=\"font-weight: 400;\"> - Assign policies to groups of users based on the specific things those users need to do. Don\u2019t \u201cstack\u201d IAM roles by assigning roles to individual users and then adding them to groups. This will make it hard for you to understand their effective permissions.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Grant least-privilege<\/b><span style=\"font-weight: 400;\"> - Only grant the least amount of permissions needed for a job, just like we discussed with the Lambda function accessing DynamoDB. This will ensure that if a user or resource is compromised, the blast radius is reduced to the one or few things that entity was permitted to do. This is an ongoing task. As your application is constantly changing, you need to make sure that your permissions adapt accordingly.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Leverage cloud provider tools<\/b><span style=\"font-weight: 400;\"> - Managing many permission profiles at scale is challenging. Leverage the platforms you are already using to generate least-privilege permission sets and analyze your existing services. Remember that the cloud provider recommendation is to always manually review the generated profiles before implementing them.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Learn how<\/span><a href=\"https:\/\/www.paloaltonetworks.com\/prisma\/cloud\"><span style=\"font-weight: 400;\"> Prisma Cloud<\/span><\/a><span style=\"font-weight: 400;\"> handles all aspects of your cloud security. <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cloud providers offer many services. You need to govern and secure many of them with identity and access management (IAM). Here\u2019s how.<\/p>\n","protected":false},"author":663,"featured_media":106368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6768],"tags":[7009,1166,6890],"coauthors":[6879,7015],"class_list":["post-106367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-secure-the-cloud","tag-30-days-of-cloud","tag-cloud-security","tag-prisma-cloud"],"jetpack_featured_media_url":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-content\/uploads\/2020\/02\/30-days-of-cloud_cloud-id-mgmt-1200x675-1.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts\/106367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/users\/663"}],"replies":[{"embeddable":true,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/comments?post=106367"}],"version-history":[{"count":4,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts\/106367\/revisions"}],"predecessor-version":[{"id":106400,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/posts\/106367\/revisions\/106400"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/media\/106368"}],"wp:attachment":[{"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/media?parent=106367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/categories?post=106367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/tags?post=106367"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www2.paloaltonetworks.com\/blog\/wp-json\/wp\/v2\/coauthors?post=106367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}