要在AWS CloudFormation模板中设置一个条件,以便只在运行在主组织(根)帐户时执行,可以使用AWS组织服务的“aws:PrincipalOrgID”条件键。
以下是一个示例CloudFormation模板,演示如何设置此条件:
AWSTemplateFormatVersion: '2010-09-09'
Resources:
ExampleResource:
Type: AWS::S3::Bucket
Properties:
BucketName: example-bucket
Condition: OnlyInRootAccount
Conditions:
OnlyInRootAccount:
Fn::Equals:
- !Ref "AWS::PrincipalOrgID"
- "o-0123456789" # 将"o-0123456789"替换为您的AWS组织根账户的组织ID
在这个示例中,我们定义了一个名为“ExampleResource”的S3存储桶资源,并将其条件设置为“OnlyInRootAccount”。在条件部分,我们使用了“Fn::Equals”函数,将“AWS::PrincipalOrgID”和我们组织根账户的组织ID进行比较。只有当这两个值相等时,条件才会得到满足。
请注意,在上述示例中,我们将“o-0123456789”替换为您的AWS组织根账户的组织ID。要找到您的AWS组织根账户的组织ID,请访问AWS管理控制台中的组织服务部分。
当您在AWS组织的根账户中部署这个CloudFormation模板时,资源将会被创建。但在非根账户中部署这个模板时,资源将会被跳过,因为条件不满足。