How to use AWS managed applications with IAM Identity Center
AWS IAM Identity Center is the preferred way to provide workforce access to Amazon Web Services (AWS) accounts, and enables you to provide workforce access to many AWS managed applications, such as Amazon Q Developer (Formerly known as Code Whisperer).
<p>As we continue to release more AWS managed applications, customers have told us they want to onboard to IAM Identity Center to use AWS managed applications, but some aren’t ready to migrate their existing IAM federation for AWS account management to Identity Center.</p>
<p>In this blog post, I’ll show you how you can enable Identity Center and use AWS managed applications—such as Amazon Q Developer—without migrating existing IAM federation flows to Identity Center.</p>
<h2>A recap on AWS managed applications and trusted identity propagation</h2>
<p>Just before re:Invent 2023, AWS launched <em>trusted identity propagation</em>, a technology that allows you to use a user’s identity and groups when accessing AWS services. This allows you to assign permissions directly to users or groups, rather than model entitlements in <a href="https://aws.amazon.com/iam" target="_blank" rel="noopener">AWS Identity and Access Management (IAM)</a>. This makes permissions management simpler for users. For example, with trusted identity propagation, you can grant users and groups access to specific <a href="https://aws.amazon.com/redshift" target="_blank" rel="noopener">Amazon Redshift</a> clusters without modeling all possible unique combinations of permissions in IAM. Trusted identity propagation is available today for Redshift and <a href="https://aws.amazon.com/s3" target="_blank" rel="noopener">Amazon Simple Storage Service (Amazon S3)</a>, with more services and features coming over time.</p>
<p>In 2023, we released <a href="https://aws.amazon.com/q/developer/" target="_blank" rel="noopener">Amazon Q Developer</a>, which is integrated with IAM Identity Center, generally available as an AWS managed application. When you’re using Amazon Q Developer outside of AWS in integrated development environments (IDEs) such as Microsoft Visual Studio Code, Identity Center is used to sign in to Amazon Q Developer.</p>
<p>Amazon Q Developer is one of many AWS managed applications that are integrated with the OAuth 2.0 functionality of IAM Identity Center, and it doesn’t use IAM credentials to access the Q Developer service from within your IDEs. AWS managed applications and trusted identity propagation don’t require you to use the permission sets feature of Identity Center and instead use OpenID Connect to grant your workforce access to AWS applications and features.</p>
<h2>IAM Identity Center for AWS application access only</h2>
<p>In the following section, we use IAM Identity Center to sign in to Amazon Q Developer as an example of an AWS managed application.</p>
<h3>Prerequisites</h3>
<h3>Step 1: Enable an organization instance of IAM Identity Center</h3>
<p>To begin, you must enable an organization instance of IAM Identity Center. While it’s possible to use IAM Identity Center without an <a href="https://aws.amazon.com/organizations/" target="_blank" rel="noopener">AWS Organizations</a> organization, we generally recommend that customers operate with such an organization.</p>
<p>The IAM Identity Center documentation provides the steps to <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/organization-instances-identity-center.html" target="_blank" rel="noopener">enable an organizational instance of IAM Identity Center</a>, as well as prerequisites and considerations. One consideration I would emphasize here is the <em>identity source.</em> We recommend, wherever possible, that you integrate with an external identity provider (IdP), because this provides the most flexibility and allows you to take advantage of the advanced security features of modern identity platforms.</p>
<p>IAM Identity Center is available at no additional cost.</p>
<blockquote>
<p><strong>Note: </strong>In late 2023, AWS launched <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/account-instances-identity-center.html" target="_blank" rel="noopener"><em>account instances</em> for IAM Identity Center</a>. Account instances allow you to create additional Identity Center instances within member accounts of your organization. Wherever possible, we recommend that customers use an organization instance of IAM Identity Center to give them a centralized place to manage their identities and permissions. AWS recommends account instances when you want to perform a proof of concept using Identity Center, when there isn’t a central IdP or directory that contains all the identities you want to use on AWS and you want to use AWS managed applications with distinct directories, or when your AWS account is a member of an organization in AWS Organizations that is managed by another party and you don’t have access to set up an organization instance.</p>
</blockquote>
<h3>Step 2: Set up your IdP and synchronize identities and groups</h3>
<p>After you’ve enabled your IAM Identity Center instance, you need to set up your instance to work with your chosen IdP and synchronize your identities and groups. The <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html" target="_blank" rel="noopener">IAM Identity Center documentation includes examples</a> of how to do this with many popular IdPs.</p>
<p>After your identity source is connected, IAM Identity Center can act as the single source of identity and authentication for AWS managed applications, bridging your external identity source and AWS managed applications. You don’t have to create a bespoke relationship between each AWS application and your IdP, and you have a single place to manage user permissions.</p>
<h3>Step 3: Set up delegated administration for IAM Identity Center</h3>
<p>As a best practice, we recommend that you only access the management account of your <a href="https://aws.amazon.com/organizations/" target="_blank" rel="noopener">AWS Organizations</a> organization when absolutely necessary. IAM Identity Center supports <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html" target="_blank" rel="noopener">delegated administration</a>, which allows you to manage Identity Center from a member account of your organization.</p>
<h4>To set up delegated administration</h4>
<ol>
<li>Go to the AWS Management Console and navigate to IAM Identity Center.</li>
<li>In the left navigation pane, select <strong>Settings</strong>. Then select the <strong>Management</strong> tab and choose <strong>Register account</strong>.</li>
<li>From the menu that follows, select the AWS account that will be used for delegated administration for IAM Identity Center. Ideally, this member account is dedicated solely to the purpose of administrating IAM Identity Center and is only accessible to users who are responsible for maintaining IAM Identity Center.</li>
</ol>
<div id="attachment_34139" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-34139" src="https://infracom.com.sg/wp-content/uploads/2024/05/img1-3.png" alt="Figure 1: Set up delegated administration" width="780" class="size-full wp-image-34139">
<p id="caption-attachment-34139" class="wp-caption-text">Figure 1: Set up delegated administration</p>
</div>
<h3>Step 4: Configure Amazon Q Developer</h3>
<p>You now have IAM Identity Center set up with the users and groups from your directory, and you’re ready to configure AWS managed applications with IAM Identity Center. From a member account within your organization, you can now enable Amazon Q Developer. This can be any member account in your organization and should not be the one where you set up delegated administration of IAM Identity Center, or the management account.</p>
<blockquote>
<p><strong>Note:</strong> If you’re doing this step immediately after configuring IAM Identity Center with an external IdP with SCIM synchronization, be aware that the users and groups from your external IdP might not yet be synchronized to Identity Center by your external IdP. Identity Center updates user information and group membership as soon as the data is received from your external IdP. How long it takes to finish synchronizing after the data is received depends on the number of users and groups being synchronized to Identity Center.</p>
</blockquote>
<h4>To enable Amazon Q Developer </h4>
<ol>
<li>Open the Amazon Q Developer console. This will take you to the setup for Amazon Q Developer.
<div id="attachment_34140" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-34140" src="https://infracom.com.sg/wp-content/uploads/2024/05/img2-3.png" alt="Figure 2: Open the Amazon Q Developer console" width="740" class="size-full wp-image-34140">
<p id="caption-attachment-34140" class="wp-caption-text">Figure 2: Open the Amazon Q Developer console</p>
</div> </li>
<li>Choose <strong>Subscribe to Amazon Q</strong>.
<div id="attachment_34141" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-34141" src="https://infracom.com.sg/wp-content/uploads/2024/05/img3-3.png" alt="Figure 3: The Amazon Q developer console" width="740" class="size-full wp-image-34141">
<p id="caption-attachment-34141" class="wp-caption-text">Figure 3: The Amazon Q developer console</p>
</div> </li>
<li>You’ll be taken to the <strong>Amazon Q</strong> console. Choose <strong>Subscribe</strong> to subscribe to Amazon Q Developer Pro.
<div id="attachment_34142" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-34142" loading="lazy" src="https://infracom.com.sg/wp-content/uploads/2024/05/img4-3.png" alt="Figure 4: Subscribe to Amazon Q Developer Pro" width="633" height="368" class="size-full wp-image-34142">
<p id="caption-attachment-34142" class="wp-caption-text">Figure 4: Subscribe to Amazon Q Developer Pro</p>
</div> </li>
<li>After choosing <strong>Subscribe</strong>, you will be prompted to select users and groups you want to enroll for Amazon Q Developer. Select the users and groups you want and then choose <strong>Assign</strong>.
<div id="attachment_34143" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-34143" loading="lazy" src="https://infracom.com.sg/wp-content/uploads/2024/05/img5-1.png" alt="Figure 5: Assign user and group access to Amazon Q Developer" width="648" height="633" class="size-full wp-image-34143">
<p id="caption-attachment-34143" class="wp-caption-text">Figure 5: Assign user and group access to Amazon Q Developer</p>
</div> </li>
</ol>
<p>After you perform these steps, the setup of Amazon Q Developer as an AWS managed application is complete, and you can now use Amazon Q Developer. No additional configuration is required within your external IdP or on-premises Microsoft Active Directory, and no additional user profiles have to be created or synchronized to Amazon Q Developer. </p>
<blockquote>
<p><strong>Note</strong>: There are charges associated with using the Amazon Q Developer service.</p>
</blockquote>
<h3>Step 5: Set up Amazon Q Developer in the IDE</h3>
<p>Now that Amazon Q Developer is configured, users and groups that you have granted access to can <a href="https://docs.aws.amazon.com/codewhisperer/latest/userguide/setting-up.html" target="_blank" rel="noopener">use Amazon Q Developer from their supported IDE</a>.</p>
<p>In their IDE, a user can sign in to Amazon Q Developer by entering the start URL and AWS Region and choosing <strong>Sign in</strong>. Figure 6 shows what this looks like in Visual Studio Code. The Amazon Q extension for Visual Studio Code is available to download within Visual Studio Code.</p>
<div id="attachment_34144" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-34144" loading="lazy" src="https://infracom.com.sg/wp-content/uploads/2024/05/img6-1.png" alt="Figure 6: Signing in to the Amazon Q Developer extension in Visual Studio Code" width="548" height="711" class="size-full wp-image-34144">
<p id="caption-attachment-34144" class="wp-caption-text">Figure 6: Signing in to the Amazon Q Developer extension in Visual Studio Code</p>
</div>
<p>After choosing <strong>Use with Pro license</strong>, and entering their Identity Center’s start URL and Region, the user will be directed to authenticate with IAM Identity Center and grant the Amazon Q Developer application access to use the Amazon Q Developer service.</p>
<p>When this is successful, the user will have the Amazon Q Developer functionality available in their IDE. This was achieved without migrating existing federation or AWS account access patterns to IAM Identity Center.</p>
<h2>Clean up</h2>
<p>If you don’t wish to continue using IAM Identity Center or Amazon Q Developer, you can delete the Amazon Q Developer Profile and Identity Center instance within their respective consoles, within the AWS account they are deployed into. Deleting your Identity Center instance won’t make changes to existing federation or AWS account access that is not done through IAM Identity Center.</p>
<h2>Conclusion</h2>
<p>In this post, we talked about some recent significant launches of AWS managed applications and features that integrate with IAM Identity Center and discussed how you can use these features without migrating your AWS account management to permission sets. We also showed how you can set up Amazon Q Developer with IAM Identity Center. While the example in this post uses Amazon Q Developer, the same approach and guidance applies to Amazon Q Business and other AWS managed applications integrated with Identity Center.</p>
<p>To learn more about the benefits and use cases of IAM Identity Center, <a href="https://aws.amazon.com/iam/identity-center/" target="_blank" rel="noopener">visit the product page,</a> and to learn more about Amazon Q Developer, visit the <a href="https://aws.amazon.com/q/developer/" target="_blank" rel="noopener">Amazon Q Developer product page</a>.</p>
<p> <br>If you have feedback about this post, submit comments in the<strong> Comments</strong> section below. If you have questions about this post, <a href="https://console.aws.amazon.com/support/home" target="_blank" rel="noopener noreferrer">contact AWS Support</a>.</p>
<p><strong>Want more AWS Security news? Follow us on <a title="Twitter" href="https://twitter.com/AWSsecurityinfo" target="_blank" rel="noopener noreferrer">X</a>.</strong></p>
<!-- '"` -->