EC2:セキュリティグループ ルールの追加

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
に置換すればできます

Comments