# Users

Every IAM user receives Amazon Resource Name (ARN). It is similar to object id in Active Directory and is of the format:

* arn:aws:iam::\<account-id>:root&#x20;
* arn:aws:iam::\<account-id>:user/iam-username

More details about ARN are already explained [here](/aws/aws-identity-and-access-management.md#arn).

### Console Access

When logging into AWS, using root account, one can simply navigate to <https://console.aws.amazon.com>, which will redirect to domain [signin.aws.amazon.com](https://signin.aws.amazon.com)

<figure><img src="/files/jSY4jyswyB9FUXRmjDV7" alt=""><figcaption></figcaption></figure>

However, when logging using IAM account, one can simply use the 2nd option as mentioned in the above screenshot and simply provide the options as mentioned in the below screenshot:

<figure><img src="/files/g5G4tkkDD376Y7DPf6S4" alt=""><figcaption></figcaption></figure>

Now one can either provide account ID (which is 12 digit numerical id) created when one sign-up for AWS or simply provide an account alias (as its difficult to remember the 12 digit number) in place of account id to access further and lastly provide the IAM user and password to login, provided the IAM user has console access.

<figure><img src="/files/cYpExFX9cPpWUKZZi6Lz" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/15xHUGerni0LRicwYM0q" alt=""><figcaption></figcaption></figure>

Now, one can understand the steps can be referred to see how to create an IAM user and provide the user console access in IAM console. If its the first IAM user, then one has to use root account privileges. To be specific, the following account that is created is the administrator account which can be used to manage day to day operations in AWS.

<figure><img src="/files/RFrnSYC2Q4DrnY2vjqjM" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/h5gDh96kVhh1rCFy2xmJ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/8b1dG9wu06G7YuPfbE4d" alt=""><figcaption></figcaption></figure>

Instead of creating user with administrator access individually, a group has been created with administrator privileges as shown [here](/aws/aws-identity-and-access-management/groups-and-roles.md).

<figure><img src="/files/9HPWYv0jwh0DBVJjjolK" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Every IAM user access resources based on assigned permissions.
{% endhint %}

<figure><img src="/files/d6sMzJMVdgBO7h7kHcDJ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/XjLgMsrWc38hnTB489kC" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note, one can also access AWS console via https\://\<account-id>.signin.aws.amazon.com for AWS IAM Users to login
{% endhint %}

### Forgot Password

<figure><img src="/files/vLXBfMmfYECuQzOeL5h8" alt=""><figcaption></figcaption></figure>

As said above, IAM users would have to go to their IAM administrators for password reset. This is particularly useful to prevent SSPR (Self Service Password Reset) abuse in phishing attacks.&#x20;

### Programmatic Access

Next, one can also create access keys to let the user access AWS programmatically or using cli. It is like **user-id (Access Key ID)** and **password (Secret Access Key)** for programmatic access.&#x20;

Moreover, the best practices for them are as follows:&#x20;

* Rotate access keys every 90 days
* Store access keys in secure manner

**Note**: Refer [here ](https://guides.radifine.com/how-to-securely-access-and-transfer-file-to-an-ec2-instance-in-private-subnet-of-vpc-in-aws#heading-step-24-for-access-via-awscli-more-work-is-necessary)on how to use access keys and MFA to create[ short term credentials](https://notes.radifine.com/aws/aws-iam/federation#aws-sts) for best practices. This is particularly useful to avert the risk of long term damage in case the user's system is compromised.

**Note**, if the access key is for an application, then one can create a different user with only cli access that has access to particular resource in AWS, store it in AWS secrets manager and then give EC2 IAM instance profile to fetch only that particular AWS key from AWS secrets manager as security best practice

* Delete unused keys
* Monitor usage of access keys

It can be created as shown below:

<figure><img src="/files/5wPDPYChj7D4dHBXL0bQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/PHs3X7FpijiTY7RbiZtJ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/kZRIOHNapzZ0OE3XqEge" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: If the primary use case of access keys is going to be to use it to perform operations across AWS service to do repetitive tasks or save time to do something over cli for better productivity, then **CloudShell** can also be used as shown below. It is simply better because there is no requirement to ever store access keys locally in user's system in this case.
{% endhint %}

<figure><img src="/files/X2d4xNqIHNTuge5vlvDA" alt=""><figcaption></figcaption></figure>

Note that Access Key ID starts with AKIA for long term credentials and ASIA for short term credentials

### Password Policy

It is basically used to configure the following:

* Character requirement like small alphabets, capital alphabets etc.
* Minimum Password Length.
* Validity of the password in terms of its expiration.
* Number of times it is allowed to do attempt entering password for users.
* Reusability of Passwords

Password Policy can be managed as shown below:

<figure><img src="/files/yYKadTuFAEa4U5cfVUjA" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/O16CDIt38PktUh3RSpMe" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Qvs9QKamYFwp3elxub2K" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/zzl0puuQQ23QapunlXfY" alt=""><figcaption></figcaption></figure>

### Setting up MFA

This is used to setup extra layer of security.

Login to AWS console and go to Security Credentials

<figure><img src="/files/2bE5MKcngQJrvrRVgsFb" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VWrPWjyggm4yIN26P69n" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/HtH6tPDjsruBDXmSo1S9" alt=""><figcaption></figcaption></figure>

For demo, lets configure using Software based Authenticator app. OneAuth, Microsoft Authenticator, Google Authenticator, Orange Authenticator etc are supported. We can also configure using browser extension from authenticator.cc

<figure><img src="/files/z33EkUv9mmOVWenU2SzE" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Gwyyzxy0Yduy6enSfVqK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/E2c1YGGyQsedIh4ZnP7N" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/5JPXwJ3KcfbsoPrTTs0i" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/dSRpyBcj8VzEOLrBLCXm" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xClO6ltImGbdRu5CRAgN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/gMFtUZPm35wztTlqvxoe" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/D2uYRQlm8gMPoN6Usrhy" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/iDnFXOj6R8KG0myRWpiq" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/DC8Q8hFXKe4kdm22ghAw" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/GP5PqeHVCt4aEhnmN2zT" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://notes.radifine.com/aws/aws-identity-and-access-management/users.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
