Amazon RDS:RDSインスタンスのアクセスをAWS Lambda関数と自分のコンピューターに制限するにはどうすればよいですか?

正当な理由

私はとREST APIを開発していますAWS LambdaAPI GatewayAmazon RDS(MySQL)AWSSamを使用して設定とすべてを行っています。

アマゾンのウェブサイトのRDSセクションにアクセスしてデータベースを作成しました。期待どおりに正常に動作しています。また、Lambda関数をデプロイして、データベースに接続することもできました。

私のデータベースはに設定されています Publicly Accessible = Yes

しかし、私はデータベースが全世界に開かれていることに気づきました。以下の画像を参照してください。

セキュリティグループのルール

ここに画像の説明を入力してください

デフォルトのセキュリティグループ内

ここに画像の説明を入力してください

まあ、これは怖いようです、私にはセキュリティがありません。

データベースセキュリティの場合、私が必要としているのはこれです。

  1. All of my Lambda functions can access the database
  2. MySQL WorkBench can access the database
  3. I test this locally, so I may need to run the lambda locally and connect to RDS

In case you need, below is my template.yaml file

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  abcd-restapi

  Sample SAM Template for abcd-restapi

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 100

Resources:
  GetAllAccountTypesLambda:
    Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
    Properties:
      CodeUri: abcd-restapi
      Handler: com.abcd.dao.accountingtype.GetAllAccountTypesLambda::getAllAccountTypes
      Runtime: java11
      MemorySize: 1024
      Environment: # More info about Env Vars: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#environment-object
        Variables:
          PARAM1: VALUE
      Events:
        HelloWorld:
          Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
          Properties:
            Path: /accounttype
            Method: get

What should I do to remove the "whole world free access" and implement the access I mentioned above ?

-----------UPDATE----------

This is my security group now, after following John's advice. But Lambda cant access the database, MySQL workbench can

ここに画像の説明を入力してください

Lambda-SG security group

ここに画像の説明を入力してください

John Rotenstein

If your Amazon RDS database is in a public subnet and is set to Publicly Accessible = Yes, then you can use Security Groups to control access to the database server.

  • Lambda-SGデフォルトの「すべてのアウトバウンドを許可」設定を使用して、Lambda関数()にセキュリティグループを配置します
  • DB-SGからのポート3306(MySQL)へのアクセスを許可するインバウンドルールを使用して、セキュリティグループをRDSデータベース()に配置しますLambda-SGつまり、DB-SG具体的にはを参照しLambda-SGます。
  • 独自のパブリックIPアドレスをDB-SGインバウンドルールに追加して、ポート3306(MySQL)でのアクセスを許可します。

パブリックにアクセス可能なデータベースはセキュリティの観点からは理想的ではありませんが、セキュリティグループはサーバーへのアクセスを制限するのに役立ちます。データベースサーバーは、データベースに接続するための認証も必要とします。これは、セキュリティの追加レイヤーです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    PictureBoxで画像のブレンドを無効にする

  3. 3

    HTTPヘッダー 'SOAPAction'の値はサーバーによって認識されませんでした

  4. 4

    レスポンシブウェブサイトの一番下にスティッキーなナビゲーションバーを作成するのに問題がある

  5. 5

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    ZScalerと証明書の問題により、Dockerを使用できません

  9. 9

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  10. 10

    tf.nn_conv2dとtf.nn.depthwise_conv2dの違い

  11. 11

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    テキストフィールドの値に基づいて UIslider を移動します

  14. 14

    amCharts 4で積み上げ棒グラフの輪郭を描く方法は?

  15. 15

    MLでのデータ前処理の背後にある直感

  16. 16

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  17. 17

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  18. 18

    Officeアドインを使用してOutlookの連絡先のリストにプログラムでアクセスすることは可能ですか?

  19. 19

    モジュラーJava Webアプリケーションを作成する最良の方法は何ですか

  20. 20

    Chromeウェブアプリのウェブビューの高さの問題

  21. 21

    ezdxf pythonパッケージを使用して既存のdxfファイルを変更するにはどうすればよいですか?

ホットタグ

アーカイブ