公開アクセスが有効なRedshift構成

Redshiftの公開アクセスが必要かを確認し、非公開接続経路、限定した受信ルール、データベース認証を併せて点検してください。

説明

Redshiftの公開アクセス設定は、インターネット経由でクラスターへ接続するために使います。ルーティングとセキュリティグループも接続を許可していると、意図した範囲外のクライアントからも接続を試みられる可能性があります。ネットワーク上で到達できても、データベースの認証や権限が不要になるわけではありません。

想定される影響

  • 不要な公開経路は、ログイン試行や脆弱性の悪用を受ける範囲を広げる場合があります。
  • 認証情報やデータベース権限の管理が不十分だと、意図しないデータアクセスにつながる可能性があります。

対処方法

  • 公開接続が不要な場合は、クライアントの非公開経路と限定した受信ルールを準備してから公開アクセスを無効にしてください。
  • 既存クラスターには対応する更新手段を使ってください。community.aws 11.1.0では、既存の識別子にcreateを再実行しても、modifyを使ってもpublicly_accessibleは変更されません。AWSのModifyCluster APIはこの変更に対応しています。
  • 実際に適用された設定と必要なクライアントの接続を確認し、承認していない接続が拒否されることをテストしてください。認証、最小権限、通信保護も確認してください。

例

新しい単一ノードクラスターを作成する別々の構成案です。redshift_single_node_typeにはモジュールとAWSの両方が対応するタイプを指定し、redshift_admin_passwordはシークレットストアから安全に提供してください。実際のリージョン、サブネット、セキュリティグループも準備してください。これらのタスクを再実行しても既存クラスターの公開設定は更新されません。

変更前

yaml
- name: Basic cluster provisioning example
  community.aws.redshift:
    command: create
    node_type: "{{ redshift_single_node_type }}"
    cluster_type: single-node
    identifier: new-cluster
    username: cluster_admin
    password: "{{ redshift_admin_password }}"
    encrypted: true
    publicly_accessible: yes

新しいクラスターへの公開アクセスを要求します。実際の外部接続にはネットワーク経路とセキュリティグループも影響します。

変更後

yaml
- name: Basic cluster provisioning example
  community.aws.redshift:
    command: create
    node_type: "{{ redshift_single_node_type }}"
    cluster_type: single-node
    identifier: new-cluster
    username: cluster_admin
    password: "{{ redshift_admin_password }}"
    encrypted: true
    publicly_accessible: false

新しいクラスターの公開アクセスを無効にします。必要なクライアントが非公開経路で接続できることを確認してください。

参考資料