为啥我在 AWS 管理控制台中有权限,但在 AWS CLI 中没有某些操作的权限?
Posted
技术标签:
【中文标题】为啥我在 AWS 管理控制台中有权限,但在 AWS CLI 中没有某些操作的权限?【英文标题】:Why do I have authority in AWS management console but not in AWS CLI for some operations?为什么我在 AWS 管理控制台中有权限,但在 AWS CLI 中没有某些操作的权限? 【发布时间】:2019-08-05 06:29:30 【问题描述】:我有一个 AWS 根账户,并创建了一个附加了 Administrator
策略的 IAM 用户。问题是当我在aws-cli中进行aws ec2 create-key-pair
之类的操作时,出现UnauthorizedOperation
错误。但是,如果我使用同一个 IAM 用户登录管理控制台,我可以毫无问题地创建密钥对。
我仔细检查了我的访问密钥 ID 和秘密访问密钥是否正确。我什至重新创建了这些并在 aws-cli 中进行了配置,以确保我使用的是具有管理员权限的用户帐户。这些都不起作用
是否有任何我不知道的设置启用了 aws-cli 访问权限?
===============下面是最新更新================
我使用aws sts get-caller-identify
检查了我的用户信息,它显示了我公司的帐户 ID。我尝试再次运行aws configure
,然后运行aws sts get-caller-identity
,它仍然显示我正在使用我公司的帐户。如何从 CLI 切换用户?
【问题讨论】:
从终端调用aws sts get-caller-identity
,检查用户名是否与您在管理控制台中使用的相同
请编辑您的问题以显示分配给 IAM 用户的策略。
@MatusDubrava 感谢您的回复。我尝试调用该命令,但发现我正在使用不同帐户 ID 下的同名用户。我确定我使用的是正确的访问密钥 ID 和秘密访问密钥。我是如何使用其他帐户登录的?
IAM 用户是特定于账户的。您不能跨多个账户使用一个 IAM 用户(不是说跨账户权限),这意味着您只能登录到创建用户的账户。您确定您使用的是正确的用户配置文件吗?请注意,您可以将--profile
标志传递给aws configure
以创建其他配置文件,但是您需要将此--profile
标志传递给每个命令,否则将使用默认用户,这可能与您实际使用的用户不同。
@MatusDubrava 感谢您的解释。我发现当我使用aws configure
设置帐户信息时,它会显示我的个人帐户信息。但是之后如果我使用aws sts get-caller-identity
,就会立即显示我公司的帐户信息。我检查了凭证文件,它只有一个 [默认] 帐户。看起来 aws-cli 根本没有从 ~/.aws/credentials 读取凭据。有什么方法可以完全重置配置?
【参考方案1】:
这是一个令人难以置信的大坑……但是 aws cli 在哪里查找凭据是有优先级的。
IAM credentials not found on AWS CLI
这里问题的答案解释得透彻。
【讨论】:
【参考方案2】:如果这对任何人都有帮助,我的问题是我的 AWS 账户使用了 MFA。我从未考虑过您也必须在命令行上执行此操作。以下是亚马逊关于该主题的指南:
How do I use an MFA token to authenticate access to my AWS resources through the AWS CLI?
【讨论】:
以上是关于为啥我在 AWS 管理控制台中有权限,但在 AWS CLI 中没有某些操作的权限?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 spring-boot 应用程序无法在 AWS 中运行,但在本地运行良好?