IAM Cannot access my account? - amazon-web-services

As a new user I have been logging in for a couple of weeks now using my amazon login details. Yesterday I set myself up with a IAM user identity with administrator rights. After that I find I can no longer access my account. So for example trying to access Billing returns "You are currently signed in as an IAM user that does not have permissions to the requested page."
Biggest problem is the IAM login page appears to have hijacked the old login page where I could use my amazon credentials...
What to do?

From the documentation...
"If you want to sign in to the console using your AWS root account credentials instead of IAM user credentials, go to the account sign-in page and then click Sign in using root account credentials. The Amazon Web Services sign-in page appears that you can use to sign in with your AWS root account credentials."
If the link is missing make sure javascript is turned on.

Here is the relevant documentation:
The IAM Console and the Sign-in Page
How Users Sign In to Your Account
The sign-in endpoint follows this pattern:
https://AWS-account-ID-or-alias.signin.aws.amazon.com/console
In the long term it make sense to setup an easy to read account alias, but you will bookmark this page anyway. :D

Related

Problem on creating access tokens for IAMUSER via aws educate account

I want to use aws s3 on my laravel project , for this i created a bucket on s3 and also created IAMUSER and give it "S3FullAccess" permission but it create user with some error, access_key not created...
I use my vocareum account credentails (found on Account details button) but laravel gives an error "Invalid access token".
please help...
e
On AWS Educate Starter Account you can't create access keys for IAM users. From their docs:
You can create users, but cannot associate login profile or access keys for them
The AWS Educate accounts have a lot of limitations and they just barely allow to do what you need to do in your classrooms.
It appears that the user you are logging into AWS as is not an administrator user, or certainly lacks some administration permissions.
I'm not familiar with Vocareum but it seems to be some sort of learning management system - I presume you are using an AWS account that they control, which would explain the lack of privileges. If that is the case, and it is their AWS account that you are accessing, then you will need to raise a support case with them.
If this is your account, and you created this user, then you need to log into the account as the root user you created when you configured your AWS account and use it to create an access key for this current user.

How to setup MFA to other IAM user in AWS?

I want to setup MFA to other IAM users in AWS? Is there a way to do that? I only found that I could force them to authenticate themselves but is there a way for an administrator to setup MFA for other IAM users?
This can be done from the console, but you must be aware that you will need a device to bind it to that the user if they are to be able to login.
To do it you will need to go to the IAM console:
Go to the IAM console
Click the Users menu item.
Click on a User name link
Click the Security credentials tab
Next to the Assigned MFA device label click Manage
You can now sort out the MFA for the user
The administrator would need access to perform this action in IAM.
Just in case you are not aware you can also use the policy on the AWS: Allows MFA-Authenticated IAM Users to Manage Their Own MFA Device on the My Security Credentials Page page to prevent a user from doing anything whilst they do not have an MFA attached.
I dont think so this is possible.
You can enable it for a user but the user needs to go through the steps to establish the MFA.
It defeats the purpose of MFA if a third person has access to it, therefore industry best practice is for a user him/herself to set it up.
MFA details in AWS document link below: https://aws.amazon.com/iam/features/mfa/

AWS first login can not find Account ID

I am trying to create a docker on AWS. I have created a an account and now I am stuck on this page:
It asks for account ID and IAM username. I do not know my ID. Where is it?
On AWS docs it says log into your account and go to support center, but the support center login requires this same screen. Please let me know if I am doing something wrong.
Click the Sign-in using root account credentials link on the sign-in page and you will be prompted for an email address and password.
This will login as the Root account, which is all-powerful. In fact, it is so powerful that the recommendation is that you should immediately create a new IAM User, assign it Admin permissions and then never use the Root login again. You can assign Admin permissions by attaching the policy called AdministratorAccess.
While you are in the IAM console, you can create an account alias that you can use when logging in via the screen you have shown. It will also give you a URL you can use to access the correct sign-in page in future.

Create AWS IAM users based on e-mail domain

I am setting up an AWS Account, the account will be used by an organization of employees for EC2 use/experimentation. Obviously, I do not want to distribute the root login info or set up one single IAM user for everyone to use. Unfortunately, I do not have the time to manage creating individual IAM users for everyone on a regular basis.
So, is there a way to auto-create IAM users based on a given email's domain on their first login attempt? The users should have read-only roles to begin, then an Administrator could give more roles as needed to each user. I am open to suggestions, perhaps lambda functions or linking to an identity provider?
Keep in mind that these new IAM users need to have access to the AWS Management Console, this is not necessarily intended for login to applications hosted on AWS.
Update:
Moving forward using this AWS Management Console Federation Proxy Sample found in Amazon's code reference, using with Microsoft Exchange hosted email.
If your existing identity provider supports SAML2 Federation, you can set it up to login to the AWS Management Console.
For more details refer Enabling SAML 2.0 Federated Users to Access the AWS Management Console.
Else you can implement a custom Federation Broker to return an URL to the user, after they authenticate with their corporate credentials.
For more details refer Creating a URL that Enables Federated Users to Access the AWS Management Console (Custom Federation Broker).

Sign-in page for AWS federated login

I volunteer at a small local school that teaches data science and I'm trying to understand the procedure behind federated logins, but the Amazon documentation isn't helping and their forums don't seem interested.
We'd like for the students to be able to sign in to our AWS environment using either Facebook, Google, or Amazon.com, instead of manually trying to create a user for everyone who signs up.
The main thing that's unclear is how the students should sign in. Do we need to create a custom webpage using the provided javascript or .net code? We would have to contact our web developer if so. Or do we use the provided domain name? (in this case, https://weclouddata.auth.us-east-1.amazoncognito.com) This comes from the Cognito user pools though, and doesn't seem like it would apply. Besides, when I use it in conjunction with the Google client ID, I get an "invalid request" error.
You can create a custom app "Identity Broker" to create a URL that lets users sign in with Facebook/Google credentials and securely access the AWS Management Console. The broker would perform the following steps:
Verify that the user is authenticated by identity system(Facebook or Google) or use AWS Congnito.
Call the AWS Security Token Service (AWS STS) API operations to obtain temporary security credentials for the user.
Construct a URL for the console that includes the token and redirects the user to the URL on the user's behalf.
Amazon Cognito lets you to easily create customizable UI to sign in users and provides built-in federation with Facebook, Google, Login with Amazon. So you don't have worry about authentication and concentrate building your actual logic(above steps)
Here is a sample app from AWS that shows how to implement a single sign-on solution with C# and windows AD.
Python Code:
Here is the python code on how to construct the console login URL. I have used the sample python code from AWS and 'Hello world' flask app. When you hit the URL it should redirect to the console login, you can set permission using IAM role.
You can provide any login mechanism (Facebook, Google, Amazon etc) to create student account first time.
Ask user to create account using any app login (Facebook, Google, Amazon etc)
On successful login, create user in AWS using https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html API.
Add newly created user in the group https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html
You can create the user group with some specified roles and give permission (Launch EC2 Instances, Access to DynamoDB etc) accordingly.