AWS Well-Architected Tool
User Guide

Authentication and Access Control for the AWS Well-Architected Tool

AWS Identity and Access Management (IAM) is an AWS service that helps an administrator securely control access to AWS Well-Architected Tool resources. Administrators use IAM to control who is authenticated (signed in) and authorized (has permissions) to use AWS WA Tool resources. IAM is a feature of your AWS account offered at no additional charge.

Important

To get started quickly, review the introductory information on this page and then see Getting Started with IAM. You can optionally learn more about authentication and access control by viewing What is Authentication?, What is Access Control?, and What are Policies?.

Topics

Introduction to Authorization and Access Control

Authentication – To sign in to AWS, you must use root user credentials (not recommended), IAM user credentials, or temporary credentials using IAM roles. To learn more about these entities, see What is Authentication?.

Access Control – AWS administrators use policies to control access to AWS resources, such as the AWS WA Tool workload. To learn more, see What is Access Control? and What are Policies?.

Important

All resources in an account are owned by the account, regardless of who created those resources. You must be granted access to create a resource. However, just because you created a resource does not mean that you automatically have full access to that resource. An administrator must explicitly grant permissions for each action that you want to perform. That administrator can also revoke your permissions at any time.

To help you understand the basics of how IAM works, review the following terms:

  • Resources – AWS services, such as AWS WA Tool and IAM, are made up of objects called resources. You can create, manage, and delete these resources from the service. IAM resources include users, groups, roles, and policies.

    • Users – An IAM user represents the person or application who uses its credentials to interact with AWS. A user consists of a name, a password to sign into the AWS Management Console, and up to two access keys that can be used with the AWS CLI or AWS API.

    • Groups – An IAM group is a collection of IAM users. You can use groups to specify permissions for its member users. This makes it easier for you to manage permissions for multiple users.

    • Roles – An IAM role does not have any long-term credentials (password or access keys) associated with it. A role can be assumed by anyone who needs it and has permissions. An IAM user can assume a role to temporarily take on different permissions for a specific task. Federated users can assume a role by using an external identity provider that is mapped to the role. Some AWS services can assume a service role to access AWS resources on your behalf.

    • Policies – Policies are JSON policy documents that define the permissions for the object to which they are attached. AWS supports identity-based policies that you attach to identities (users, groups, or roles). Some AWS services allow you to attach resource-based policies to resources to control what a principal (person or application) can do to that resource. AWS WA Tool does not support resource-based policies.

  • Identities – Identities are IAM resources for which you can define permissions. These include users, groups, and roles.

  • Entities – Entities are IAM resources that you use for authentication. These include users and roles.

  • Principals – In AWS, a principal is a person or application that uses an entity to sign in and make requests to AWS. As a principal, you can use the AWS Management Console, the AWS CLI, or the AWS API to perform an operation (such as deleting a workload). This creates a request for that operation. Your request specifies the action, resource, principal, principal account, and any additional information about your request. All of this information provides AWS with context for your request. AWS checks all the policies that apply to the context of your request. AWS authorizes the request only if each part of your request is allowed by the policies.

To view a diagram of the authentication and access control process, see Understanding How IAM Works in the IAM User Guide. For details about how AWS determines whether a request is allowed, see Policy Evaluation Logic in the IAM User Guide.

Permissions Required

To use AWS WA Tool or to manage authorization and access control for yourself or others, you must have the correct permissions.

Permissions Required to Use the AWS WA Tool Console

To access the AWS Well-Architected Tool console, you must have a minimum set of permissions that allows you to list and view details about the AWS WA Tool resources in your AWS account. If you create an identity-based permissions policy that is more restrictive than the minimum required permissions, the console won't function as intended for entities with that policy.

To ensure that those entities can still use the AWS WA Tool console, also attach the following AWS managed policy to the user, as described in Creating Policies on the JSON Tab:

WellArchitectedConsoleReadOnlyAccess

Permissions Required for Authentication Management

To manage your own credentials, such as your password, access keys, and multi-factor authentication (MFA) devices, your administrator must grant you the required permissions. To view the policy that includes these permissions, see Allow Users to Self-Manage Their Credentials.

As an AWS administrator, you need full access to IAM so that you can create and manage users, groups, roles, and policies in IAM. You should use the AdministratorAccess AWS managed policy that includes full access to all of AWS. This policy does not provide access to the AWS Billing and Cost Management console or allow tasks that require root user credentials. For more information, see AWS Tasks That Require AWS Account Root User Credentials in the AWS General Reference.

Warning

Only an administrator user should have full access to AWS. Anyone with this policy has permission to fully manage authentication and access control, in addition to modifying every resource in AWS. To learn how to create this user, see Create your IAM Admin User.

Permissions Required for Access Control

If your administrator provided you with IAM user credentials, they attached policies to your IAM user to control what resources you can access. To view the policies attached to your user in the AWS Management Console, you must have the following permissions:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "ListUsersViewGroupsAndPolicies", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

If you need additional permissions, ask your administrator to update your policies to allow you to access the actions that you require.

Understanding How AWS WA Tool Works with IAM

Services can work with IAM in several ways:

  • Actions – AWS WA Tool supports using actions in a policy. This allows an administrator to control whether an entity can complete an operation in AWS WA Tool. For example, to allow an entity to define a workload, an administrator must attach a policy that allows wellarchitected:* actions.

  • Resource-level permissions – AWS WA Tool does not support resource-level permissions. Resource-level permissions allow you to use ARNs to specify individual resources in the policy. Because AWS WA Tool does not support this feature, then you must choose All resources in the policy visual editor. In a JSON policy document, you must use * in the Resource element.

  • Resource-based policies – AWS WA Tool does not support resource-based policies.

  • Authorization based on tags – AWS WA Tool does not support authorization based tags.

  • Temporary credentials – AWS WA Tool does not support temporary credentials.

  • Service-linked roles – AWS WA Tool does not support service roles.

  • Service roles – AWS WA Tool does not support service roles.

To provide access to the AWS Well-Architected Tool, assign one of the following managed policies.

Full access

Full access allows the user to perform all actions in AWS WA Tool. This access is required to define workloads and run workload reviews.

Apply the WellArchitectedConsoleFullAccess managed policy to the user, group, or role.

If you prefer to apply a custom inline policy, here is an example:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "wellarchitected:*" ], "Resource": "*" } ] }
Read-only access

Read-only access allows the user to see the results of workload reviews.

Apply the WellArchitectedConsoleReadOnlyAccess managed policy to the user, group, or role.

If you prefer to apply a custom inline policy, here is an example:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "wellarchitected:Get*", "wellarchitected:List*" ], "Resource": "*" } ] }

Troubleshooting Authentication and Access Control

Use the following information to help you diagnose and fix common issues that you might encounter when working with IAM.

I am not authorized to perform an action in AWS WA Tool

If you receive an error in the AWS Management Console that tells you that you're not authorized to perform an action, then you must contact the administrator that provided you with your user name and password.

The following example error occurs when an IAM user named my-user-name tries to use the console to perform the CreateWorkload action, but does not have permissions.

User: arn:aws:iam::123456789012:user/my-user-name is not authorized to perform: wellarchitected:CreateWorkload on resource: my-workload

For this example, ask your administrator to update your policies to allow you to access the my-workload resource using the wellarchitected:CreateWorkload action.

I'm an administrator and want to allow others to access AWS WA Tool

To allow others to access AWS WA Tool you must create an IAM entity (user or role) for the person or application that needs access. They will use the credentials for that entity to access AWS. You must then attach a policy to the entity that grants them the correct permissions in AWS WA Tool.

To get started right away, see Getting Started with IAM.

I want to understand IAM without becoming an expert

To learn more about IAM terms, concepts, and procedures, see the following pages: