AWS CodebuildからRDSやEC2に接続する方法

この記事を書いたチーム:chocochip
AWS CodebuildからRDSやEC2に接続する方法 株式会社Smallit 技術ブログ

AWS Codebuildから特定のリソースに接続するには、接続先のリソースと同じVPC内にある必要があります。今回はCodebuildからRDSやEC2に接続する方法について紹介します。 

 NATゲートウェイの作成 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

まずは接続先のリソースと同じVPC内でNATゲートウェイを作成します。サブネットはパブリックにしたいサブネットを選択します。Elastic IPを新たに割り当てます。 

*該当VPC内に既にNATゲートウェイがある場合は作成不要です。 

 インターネットゲートウェイの作成 

次に、インターネットゲートウェイを作成します。作成できたら、インターネットゲートウェイを該当するVPCにアタッチします。 

*該当VPC内に既にインターネットゲートウェイがある場合は作成不要です。  

 ルートテーブルの編集 

 先ほど作成したNATゲートウェイプライベートサブネットが関連付けされているルートテーブルのルートに追加します。また、先ほど作成したインターネットゲートウェイパブリックサブネットが関連付けされているルートテーブルのルートに追加します。送信先は両方とも0.0.0.0/0に設定します。 

 Codebuildサービスロールの修正 

 Codebuildを同じVPCに入れるには権限を付与する必要があります。接続元となるCodebuildのサービスロールに新たなインラインポリシーを作成します。ポリシーは下記の通りですが、「Resource」を指定する部分は実際に利用するリソースのIDに置き換えてください。 

 

 

{ 

    “Version”: “2012-10-17”, 

    “Statement”: [ 

        { 

            “Effect”: “Allow”, 

            “Action”: [ 

                “ec2:CreateNetworkInterface”, 

                “ec2:DescribeDhcpOptions”, 

                “ec2:DescribeNetworkInterfaces”, 

                “ec2:DeleteNetworkInterface”, 

                “ec2:DescribeSubnets”, 

                “ec2:DescribeSecurityGroups”, 

                “ec2:DescribeVpcs” 

            ], 

            “Resource”: “*” 

        }, 

        { 

            “Effect”: “Allow”, 

            “Action”: [ 

                “ec2:CreateNetworkInterfacePermission” 

            ], 

            “Resource”: “arn:aws:ec2:リージョン:AWSアカウントID:network-interface/*”, 

            “Condition”: { 

                “StringEquals”: { 

                    “ec2:AuthorizedService”: “codebuild.amazonaws.com” 

                }, 

                “ArnEquals”: { 

                    “ec2:Subnet”: [ 

                        “arn:aws:ec2:リージョン:AWSアカウントID:subnet/利用したいプライベートサブネットID” 

                    ] 

                } 

            } 

        } 

    ] 

} 

 

 

CodebuildにVPCを追加 

 上記のサービスロールの編集ができたら、Codebuildを接続したいリソースと同じVPCに追加します。Codebuildの「編集」から「環境」の追加設定からVPCを設定できます。 

サブネットはプライベートサブネットを選択します。数はいくつでも構いません。また、こちらで選択したプライベートサブネットは、サービスロールを修正する際に設定したインラインポリシーで許可したプライベートサブネットになります。 

 セキュリティグループはリソース(RDSやEC2)に接続できるセキュリティグループを選択します。 

 VPCを設定できたら、「VPC設定の確認」ボタンを押して、スクショのように「インターネットに接続されています」という表示が出たら大丈夫です。 

 

 

 

 

 ここまで設定できたら、CodebuildからRDSやEC2に接続できるようになります。 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス