gpt4 book ai didi

amazon-web-services - CloudFormation - 根据 vpc 标签值动态地将安全组分配给 vpc

转载 作者:行者123 更新时间:2023-12-03 07:19:58 26 4
gpt4 key购买 nike

我有一个组织帐户,其下有多个托管帐户。每个管理账户中都有多个 VPC。每个托管帐户中的一个 VPC 将具有“ServiceName”:“True”标签,而该帐户中的其他 VPC 将具有“ServiceName”:“False”标签。

我正在尝试创建一个堆栈集,其中的堆栈专用于创建附加了入口规则的安全组,并且我需要动态将该安全组的“VpcId”属性分配为 VPC 的“VpcId”该帐户中的“ServiceName”:“True”标签。

显然,如果我没有在 VpcId 字段中指定 VPC ID,它会创建安全组,但将其附加到该账户的默认 VPC。我也无法手动指定 VPC,因为它将在多个账户中运行。留给我的唯一选项是通过运行某种函数来提取“VpcId”来搜索和分配 VPC。

堆栈本身运行良好,因为我在测试环境中运行它并指定了 VPC ID。因此,只需动态获取“VpcId”即可。

最后,我想做一些类似这样的事情:

{
"Parameters": {
"MyValidVPCID": {
"Description": "My Valid VPC ID where ServiceName tag equals true. Do some Lambda Kung Fu to get the VPC ID using something that would let me parse the equivalent of aws ec2 describe-vpcs command.",
"Type": "String"
}
},
"Resources": {
"SG": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "Security Group Desc.",
"Tags": [
{
"Key": "Key1",
"Value": "ABC"
},
{
"Key": "Key2",
"Value": "DEF"
}
],
"VpcId" : { "Ref" : "MyValidVPCID" }
}
},
"SGIngressRule01":
{
"Type": "AWS::EC2::SecurityGroupIngress",
"DependsOn": "SG",
"Properties": {
"GroupId" : { "Fn::GetAtt": [ "SG", "GroupId" ] },
"Description": "Rule 1 description",
"IpProtocol": "tcp",
"FromPort": 123,
"ToPort": 456,
"CidrIp": "0.0.0.0/0"
}
}
}

我真的不知道这是否是一种可行的方法,或者根据标签恢复该 VpcId 需要哪些额外步骤。这就是为什么如果我能从曾经使用 CloudFormation 的人那里获得一些意见,这会对我有很大帮助。

最佳答案

getting that "VpcId" dynamically.

您必须使用custom resource为了那个原因。您必须将其创建为 lambda 函数,它将接受您想要的任何输入参数,并使用 AWS SDK 查询或修改堆栈中的 VPC/安全组。

关于amazon-web-services - CloudFormation - 根据 vpc 标签值动态地将安全组分配给 vpc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69287450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com