Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS根帐户无法访问组织帐户_Amazon Web Services_Amazon Ec2_Amazon Iam_Aws Organizations - Fatal编程技术网

Amazon web services AWS根帐户无法访问组织帐户

Amazon web services AWS根帐户无法访问组织帐户,amazon-web-services,amazon-ec2,amazon-iam,aws-organizations,Amazon Web Services,Amazon Ec2,Amazon Iam,Aws Organizations,我正在为AWS平台编写一个应用程序,该应用程序计划使用root凭据从root帐户启动。此时,我需要停止由AWS组织成员帐户启动的一些机器 默认情况下,AWS组织不授予根帐户访问权限,以查看或管理其他成员帐户的资源。因此,我尝试使用临时凭据并尝试承担由目标帐户创建的角色 这里有更多。 另一方面,它不允许根帐户承担角色,并引发此类异常 com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: Roles

我正在为AWS平台编写一个应用程序,该应用程序计划使用root凭据从root帐户启动。此时,我需要停止由AWS组织成员帐户启动的一些机器

默认情况下,AWS组织不授予根帐户访问权限,以查看或管理其他成员帐户的资源。因此,我尝试使用临时凭据并尝试承担由目标帐户创建的角色

这里有更多。

另一方面,它不允许根帐户承担角色,并引发此类异常

com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: Roles may not be assumed by root accounts. (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 7bee7537-48e0-11e9-bb1a-bb36134736e4)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1695) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1350) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1101) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:758) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:732) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:714) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:674) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:656) ~[aws-java-sdk-core-1.11.475.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:520) ~[aws-java-sdk-core-1.11.475.jar:na]
at...

有没有办法绕过这个问题?例如,以某种方式授予root用户对所有内容的访问权或让其承担角色?

首先,请不要使用您的root帐户!最佳做法是从根帐户中删除访问密钥,添加MFA令牌并将其锁定。我们有一个大型的AWS组织结构,除了它所在的位置之外,我们不使用根帐户

请参阅用户指南,特别是以下部分:

出于所述管理目的,请使用IAM用户 IAM用户可以担任角色。建议的步骤:

  • 创建IAM组并附加管理员权限所需的策略。
    AdministratorAccess
    策略是一个简单的预构建策略,它在当前帐户中提供完全的管理员访问权限,但是要将角色转换为子帐户,您真正需要允许的只是
    sts:AssumeRole
    操作

  • 创建IAM用户并将其分配给IAM组

  • 在子帐户中创建目标角色,策略允许在该子帐户中执行操作,并且在主组织帐户中为IAM用户定义了信任关系

    • 注意:听起来你可能已经有了这个,但请检查信任关系以确保
  • 通过IAM用户凭据、临时凭据等验证您的应用程序

    • 注意:您链接的临时凭证文档是针对IAM用户的,我建议您在完成正确的IAM用户设置后再试一次
    • 有许多方法可以验证AWS服务,另一个例子是:
  • 附加:不确定您正在构建什么,但如果合适的话,可以直接向应用程序提供它所需的特定权限,而不是处理用户凭据