端午
快乐
AWS IAM:新手快速设置用户、角色及权限 – 海南仙岛

AWS IAM:新手快速设置用户、角色及权限

2025年04月17日

原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/4649.html

aws现在的登录非常麻烦,为了安全性,他们强行推出了IAM登录,造成我经常是无法登录,因为我以前都是“使用根用户电子邮件登录”的方式登录控制面板,但是现在这种登录方式非常困难了,一登录就进入确保账户安全界面,然后三种验证方式全是硬件有关的。

之前我曾经尝试创建了IAM账号用于登录,但因为权限问题却一直无法正常使用,我因为需要使用到 账单和成本管理、EC2、Lightsail、支持等功能,所以我需要这些功能都赋予IMA账户所有权限,所以我一项一项的调试得到的完整的内容。

今天的文章只针对 到账单和成本管理、EC2、Lightsail、支持 几个模块的权限。

使用根用户电子邮件登录:在浏览器中清除所有缓存和cookies,然后再登录,最后会要求向注册邮箱发登录验证码,输入后就可以正常登录了。

如何创建AWS IAM用户和权限配置:

1、创建用户
使用您的AWS根账户登录,导航到IAM服务(https://console.aws.amazon.com/iam/),先创建一个用户,一定要选择 “我想创建一个IAM用户”,使用 “自定义密码”(自动生成的密码很短但很怪),去除 “用户必须在下次登录时创建新密码-推荐” 这一项的勾选。

2、创建用户组
在IAM服务菜单中,点击用户组,在用户组标签中“创建组”,填写用户组名,最好是英文,然后点击最底下的 “创建用户组”;点击用户组,切换到 “权限”标识卡,在右边的 “添加权限”中点击 “创建内联策略”;在策略编辑器中切换到 “JSON”, 将以下内容替换掉自带的内容,点击 “下一步”;然后将用户添加到刚创建的用户组即可。

3、创建内联策略
创建一个名称为你的用户名_Common_Permissions内联策略,内容如下。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"aws-portal:*",
"aws-portal:ViewBilling",
"aws-portal:ViewUsage",
"aws-portal:ViewPaymentMethods",
"ce:*",
"budgets:*",
"ec2:*",
"q:*",
"lightsail:*",
"support:*",
"trustedadvisor:*",
"bedrock:InvokeModel*",
"bedrock:List*",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:ListPolicyVersions",
"health:DescribeEvents",
"dlm:GetLifecyclePolicies",
"dlm:GetLifecyclePolicy",
"payments:GetPaymentStatus",
"compute-optimizer:GetEnrollmentStatus",
"compute-optimizer:GetEC2InstanceRecommendations",
"compute-optimizer:GetAutoScalingGroupRecommendations",
"compute-optimizer:GetEBSVolumeRecommendations",
"compute-optimizer:GetLambdaFunctionRecommendations",
"servicecatalog:ListProvisioningArtifacts",
"servicecatalog:CreatePortfolio",
"servicecatalog:DeletePortfolio",
"servicecatalog:AssociateProductWithPortfolio",
"servicecatalog:ListApplications",
"servicecatalog:CreateApplication",
"servicecatalog:DeleteApplication",
"servicecatalog:UpdateApplication",
"servicecatalog:SearchProducts",
"servicecatalog:DescribeProduct",
"servicecatalog:ProvisionProduct",
"servicecatalog:TerminateProvisionedProduct",
"servicecatalog:ListConstraintsForPortfolio",
"servicecatalog:UpdateConstraint",
"servicecatalog:ListPrincipalsForPortfolio",
"servicecatalog:TagResource",
"servicecatalog:UntagResource",
"servicecatalog:ListTagsForResource",
"servicecatalog:AcceptPortfolioShare",
"servicecatalog:AssociatePrincipalWithPortfolio"
],
"Resource": "*"
},
{
"Sid": "ViewOwnUserInfo",
"Effect": "Allow",
"Action": [
"iam:GetUserPolicy",
"iam:ListGroupsForUser",
"iam:ListAttachedUserPolicies",
"iam:ListUserPolicies",
"iam:GetUser"
],
"Resource": [
"arn:aws:iam::*:user/${aws:username}"
]
},
{
"Sid": "NavigateInConsole",
"Effect": "Allow",
"Action": [
"iam:GetGroupPolicy",
"iam:GetPolicyVersion",
"iam:GetPolicy",
"iam:ListAttachedGroupPolicies",
"iam:ListGroupPolicies",
"iam:ListPolicyVersions",
"iam:ListPolicies",
"iam:ListUsers"
],
"Resource": "*"
}
]
}
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aws-portal:*", "aws-portal:ViewBilling", "aws-portal:ViewUsage", "aws-portal:ViewPaymentMethods", "ce:*", "budgets:*", "ec2:*", "q:*", "lightsail:*", "support:*", "trustedadvisor:*", "bedrock:InvokeModel*", "bedrock:List*", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicyVersions", "health:DescribeEvents", "dlm:GetLifecyclePolicies", "dlm:GetLifecyclePolicy", "payments:GetPaymentStatus", "compute-optimizer:GetEnrollmentStatus", "compute-optimizer:GetEC2InstanceRecommendations", "compute-optimizer:GetAutoScalingGroupRecommendations", "compute-optimizer:GetEBSVolumeRecommendations", "compute-optimizer:GetLambdaFunctionRecommendations", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:CreatePortfolio", "servicecatalog:DeletePortfolio", "servicecatalog:AssociateProductWithPortfolio", "servicecatalog:ListApplications", "servicecatalog:CreateApplication", "servicecatalog:DeleteApplication", "servicecatalog:UpdateApplication", "servicecatalog:SearchProducts", "servicecatalog:DescribeProduct", "servicecatalog:ProvisionProduct", "servicecatalog:TerminateProvisionedProduct", "servicecatalog:ListConstraintsForPortfolio", "servicecatalog:UpdateConstraint", "servicecatalog:ListPrincipalsForPortfolio", "servicecatalog:TagResource", "servicecatalog:UntagResource", "servicecatalog:ListTagsForResource", "servicecatalog:AcceptPortfolioShare", "servicecatalog:AssociatePrincipalWithPortfolio" ], "Resource": "*" }, { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-portal:*",
                                "aws-portal:ViewBilling",
                                "aws-portal:ViewUsage",
                                "aws-portal:ViewPaymentMethods",
        "ce:*",
        "budgets:*",
        "ec2:*",
        "q:*",
        "lightsail:*",
        "support:*",
        "trustedadvisor:*",
        "bedrock:InvokeModel*",
        "bedrock:List*",
        "iam:GetPolicy",
        "iam:GetPolicyVersion",
        "iam:ListPolicyVersions",
        "health:DescribeEvents",
        "dlm:GetLifecyclePolicies",
        "dlm:GetLifecyclePolicy",
        "payments:GetPaymentStatus",
        "compute-optimizer:GetEnrollmentStatus",
        "compute-optimizer:GetEC2InstanceRecommendations",
        "compute-optimizer:GetAutoScalingGroupRecommendations",
        "compute-optimizer:GetEBSVolumeRecommendations",
        "compute-optimizer:GetLambdaFunctionRecommendations",
        "servicecatalog:ListProvisioningArtifacts",
        "servicecatalog:CreatePortfolio",
        "servicecatalog:DeletePortfolio",
        "servicecatalog:AssociateProductWithPortfolio",
        "servicecatalog:ListApplications",
        "servicecatalog:CreateApplication",
        "servicecatalog:DeleteApplication",
        "servicecatalog:UpdateApplication",
        "servicecatalog:SearchProducts",
        "servicecatalog:DescribeProduct",
        "servicecatalog:ProvisionProduct",
        "servicecatalog:TerminateProvisionedProduct",
        "servicecatalog:ListConstraintsForPortfolio",
        "servicecatalog:UpdateConstraint",
        "servicecatalog:ListPrincipalsForPortfolio",
        "servicecatalog:TagResource",
        "servicecatalog:UntagResource",
        "servicecatalog:ListTagsForResource",
        "servicecatalog:AcceptPortfolioShare",
        "servicecatalog:AssociatePrincipalWithPortfolio"
      ],
      "Resource": "*"
    },
    {
      "Sid": "ViewOwnUserInfo",
      "Effect": "Allow",
      "Action": [
        "iam:GetUserPolicy",
        "iam:ListGroupsForUser",
        "iam:ListAttachedUserPolicies",
        "iam:ListUserPolicies",
        "iam:GetUser"
      ],
      "Resource": [
        "arn:aws:iam::*:user/${aws:username}"
      ]
    },
    {
      "Sid": "NavigateInConsole",
      "Effect": "Allow",
      "Action": [
        "iam:GetGroupPolicy",
        "iam:GetPolicyVersion",
        "iam:GetPolicy",
        "iam:ListAttachedGroupPolicies",
        "iam:ListGroupPolicies",
        "iam:ListPolicyVersions",
        "iam:ListPolicies",
        "iam:ListUsers"
      ],
      "Resource": "*"
    }
  ]
}

 

创建一个你的用户名_Biiling的内联策略,内容如下

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"aws-portal:*",
"budgets:*",
"ce:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "organizations:DescribeAccount",
"Resource": "*"
}
]
}
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aws-portal:*", "budgets:*", "ce:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "organizations:DescribeAccount", "Resource": "*" } ] }
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-portal:*",
        "budgets:*",
        "ce:*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "organizations:DescribeAccount",
      "Resource": "*"
    }
  ]
}

 

4、激活IAM访问权限

默认情况下,IAM用户和角色无法访问AWS账单和成本管理控制台。需要使用根用户凭证登录AWS管理控制台,激活IAM访问权限:
使用根用户凭证登录AWS管理控制台。
在导航栏中,选择账户名称,然后选择“Account(账户)”。
在账户页面中,找到“IAM用户和角色访问账单信息的权限”部分,选择“编辑”。
选中“Activate IAM Access(激活IAM访问权限)”复选框。
选择“更新”。

5、权限策略

权限策略请参考图中,添加权限\附加策略 中附加以下策略,AdministratorAccess-Amplify;AdministratorAccess-AwSElasticBeanstalk;AmazonEC2FullAccess;AmazonMobileAnalyticsFinancialReportAccess;AmazonMobileAnalyticsNon-financialReportAccess;AmazonVPCReachabilityAnalyzerPathComponentReadPolicy;AWSAuditManagerAdministratorAccess;AWSBillingReadOnlyAccess;这几项。

到这里,基本上就可以正常登录IMA账户了。


sicnature ---------------------------------------------------------------------
I P 地 址: 3.129.216.49
区 域 位 置: 美国
系 统 信 息: 美国
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com/post/4649.html

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注