1,IAM
---------------------------------------
AWSサービス:Amazon EC2
アクション :AuthorizeSecurityGroupIngress
Amazonリソースネーム(ARN):*
---------------------------------------
2,プログラム仕様
●入力パラメータ
・IAMユーザの”アクセスキーID”と”・シークレットアクセスキー”
・セキュリティグループID
・プロトコル
・許可ポート
・送信元IPアドレス
●処理内容
指定されたセキュリティグループIDに対して、プロトコル/ポート/送信元IPを追加設定する。
●エラー処理
特になし
3,画面構成
4,プログラム
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim _AWSID As String = TextBox1.Text
Dim _AWSPass As String = TextBox2.Text
Dim _SecGroupID As String = TextBox3.Text
Dim _Protcol As String = TextBox4.Text
Dim _PortFrom As String = TextBox5.Text
Dim _PortTo As String = TextBox6.Text
Dim _SourceIP As String = TextBox7.Text
Dim cred As Amazon.Runtime.BasicAWSCredentials
cred = New Amazon.Runtime.BasicAWSCredentials(_AWSID, _AWSPass)
Dim ec2client As Amazon.EC2.AmazonEC2Client
ec2client = New Amazon.EC2.AmazonEC2Client(cred, Amazon.RegionEndpoint.APNortheast1)
Dim IpP As New Amazon.EC2.Model.IpPermission
IpP.IpProtocol = _Protcol
IpP.FromPort = _PortFrom
IpP.ToPort = _PortTo
IpP.IpRanges.Add(_SourceIP)
Dim reQ = New Amazon.EC2.Model.AuthorizeSecurityGroupIngressRequest
reQ.GroupId = _SecGroupID
reQ.IpPermissions.Add(IpP)
Dim Res As Amazon.EC2.Model.AuthorizeSecurityGroupIngressResponse
Res = ec2client.AuthorizeSecurityGroupIngress(reQ)
End Sub
|
5,解説
指定したセキュリティグループIDに、インバウンドルールを設定します。
15-19行目:設定する”プロトコル””ポート範囲””送信元IP”を、 Amazon.EC2.Model.IpPermissionオブジェクトに設定します。
15
16
17
18
19
|
Dim IpP As New Amazon.EC2.Model.IpPermission
IpP.IpProtocol = _Protcol
IpP.FromPort = _PortFrom
IpP.ToPort = _PortTo
IpP.IpRanges.Add(_SourceIP)
|
送信元IPは配列になっているので.Addです。
22行目:設定対象のセキュリティグループIDを指定
23行目:上記 IpPermissionオブジェクトを追加
21
22
23
|
Dim reQ = New Amazon.EC2.Model.AuthorizeSecurityGroupIngressRequest
reQ.GroupId = _SecGroupID
reQ.IpPermissions.Add(IpP)
|
で、実行すれば追加されます。
設定内容には、型および定数等の決まりがあります。
プロトコルには、文字列tcp udp icmp 他数字等
補足:このページで記載しているものはインバウンドルールです アウトバウンドルールは・・・ IAM設定で、AuthorizeSecurityGroupEgress を許可し、 コード内の AuthorizeSecurityGroupIngress を AuthorizeSecurityGroupEgress に置換すればできます
|
|