amazon-web-services - Powershell AWS 创建一个分配前缀列表的安全组
问题描述
我试图在powershell中找到一种方法来创建前缀列表和安全组并将前缀列表附加到安全组但遇到类型错误并且不完全确定我将如何传递前缀列表。
创建前缀列表。
$Prefix = New-EC2ManagedPrefixList -PrefixListName "PrefixListTest1" -AddressFamily IPV4 -MaxEntry 2 -Entry @{cidr='10.0.0.0/27'}
然后尝试创建一个 SG 并将该前缀列表分配给它。
$NewGroup = @{
GroupName = ""PrefixList-SG"
Description = "PrefixList-SG"
VpcId = $vpc.id
Force = $true
Region = $vpc.region
}
$newGroup = New-EC2SecurityGroup @NewGroup
Grant-EC2SecurityGroupIngress -GroupId $newGroup -IpPermission @{IpProtocol = "udp" ; FromPort = "138" ; ToPort = "138" ; PrefixListIds= $Prefix }
但这样做时我收到错误“Grant-EC2SecurityGroupIngress:无法绑定参数'IpPermission'。无法创建“Amazon.EC2.Model.IpPermission”类型的对象。无法转换“系统”类型的“pl-aaeebbccdd990”值.String" 以键入 "Amazon.EC2.Model.PrefixListId"。"
据我所知,grant-EC2SecurityGroupIngress 参数“-IpPermission <IpPermission[]>”接受 PrefixListIds,但这似乎不允许来自刚刚创建的前缀列表 ID?
解决方案
能够通过使用以下方法创建前缀列表来完成此操作:
$managedPrefixList = New-EC2ManagedPrefixList -PrefixListName "PrefixListTest1" -AddressFamily IPV4 -MaxEntry 2 -Entry @{cidr = "10.0.0.0/27" }
$prefixListId = [Amazon.EC2.Model.PrefixListId]::new()
$prefixListId.Description = $managedPrefixList.PrefixListName
$prefixListId.Id = $managedPrefixList.PrefixListId
然后我像这样传入前缀列表:
Grant-EC2SecurityGroupIngress -GroupId $newGroup -IpPermission @{ IpProtocol = "udp"; FromPort = "138"; ToPort = "138"; PrefixListIds = $prefixListId }
推荐阅读
- c++ - 如何在结构中声明类模板并稍后初始化?
- flowchart - 允许以任何顺序的流程图节点?
- c# - 释放信号量后确保字段仅由一个线程更新C#
- mysql - 我想在一行中获得 3 个 SQL 查询结果
- facebook - 不再尊重在 Facebook Native App 上共享的 Web 内容的元属性 al:web:should_fallback
- postgresql - 当 {someCase} 然后是 json 类型列时,Postgresql 按大小写排序
- java - 如何创建一个简单的 json 模板以放心地发送正文数据?
- c# - 为什么在 Entity Framework Core 中使用 Table Per Hierarchy 时会出现重复的 ID 列?
- excel - 将 Powerquery 连接到多个 Powerpivot 文件
- javascript - Redux 在 document.open() 之后没有注册操作