1
C:\>aws organizations enable-aws-service-access --service-principal cloudformation.amazonaws.com

调用 EnableAWSServiceAccess 操作时发生错误 (InvalidInputException):您指定了无法识别的服务主体。

C:\>aws organizations enable-aws-service-access --service-principal "cloudformation.amazonaws.com"

调用 EnableAWSServiceAccess 操作时发生错误 (InvalidInputException):您指定了无法识别的服务主体。

C:\>aws organizations enable-aws-service-access --service-principal 'cloudformation.amazonaws.com'

调用 EnableAWSServiceAccess 操作时发生错误 (InvalidInputException):您提供的值与所需模式不匹配。

知道有什么问题吗?

根据这里的文档

--service-principal(字符串)您要为其启用与组织集成的 AWS 服务的服务委托人名称。这通常采用 URL 的形式,例如service-abbreviation.amazonaws.com.

我试过了

"s3.amazonaws.com"
"ec2.amazonaws.com"
"elasticbeanstalk.amazonaws.com"
"autoscaling.amazonaws.com"

作为服务主体。但都给出了同样的错误。

它虽然在控制台中工作。AWS 控制台 -> CloudFormation -> StackSets -> 启用可信访问。

4

2 回答 2

1

EnableAWSServiceAccess用于

启用集成时,您允许指定的服务在您组织的所有账户中创建服务相关角色。这允许该服务代表您在您的组织及其帐户中执行操作。

我认为它失败的原因是CloudFormation 确实支持服务相关角色。您可以在此表中验证这一点https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html

它也可以在控制台中工作,因为您正在为它启用它StackSets,而不是它CloudFormation本身。CloudFormation 不支持对您的组织进行可信访问,如文档中所列。只AWS CloudFormation Stacksets支持它。

更重要的是,它只能通过控制台工作:

您可以使用 AWS CloudFormation 控制台或 AWS Organizations 控制台启用可信访问。

您无法使用 CLI 或 SDK 执行此操作。

于 2020-06-04T05:03:23.337 回答
0

您可以使用以下 aws organizations enable-aws-service-access --service-principal member.org.stacksets.cloudformation.amazonaws.com

于 2021-04-30T12:34:48.060 回答