レック・テクノロジー・コンサルティング株式会社TECH BLOG

Generative AI Use Cases (GenU) のセキュリティ機能検証

素早くデプロイして本番運用も可能なGenUですが、デフォルトではセルフサインアップが有効になっていたりなど、そのままではセキュリティ的に問題があります。

GenUにはセキュリティ関連のデプロイオプションが用意されており、以下の設定を行うことでセキュリティを強化することができます。

  • セルフサインアップ無効化
  • サインアップ可能なメールアドレスドメインの制限
  • AWS WAFによるアクセス制限

本記事では、上記それぞれの場合の設定方法と検証結果についてご紹介します。

準備

最初にGenUをデプロイしておきます。

image.png

最初の状態では、GenUのURLを知っているユーザであれば誰でもサインアップすることができる状態です。

セルフサインアップ無効化

packages/cdk/cdk.json を開き、selfSignUpEnabledfalseに変更して保存します。

{
  "context": {
    "selfSignUpEnabled": false
  }
}

再デプロイします。

npm run cdk:deploy

デプロイ完了後にアカウント作成を試みると、セルフサインアップが無効化されているため、サインアップできない旨が表示されます。

image-1.png

Cognitoでユーザを作成し、そのユーザでサインインを試みます。

image-2.png

サインインが完了し、GenUへのアクセスが成功しました。

image-4.png

サインアップ可能なメールアドレスドメインの制限

packages/cdk/cdk.json を開き、allowedSignUpEmailDomainsに許可するドメインのリストを設定して保存します(デフォルトはnull)。ドメインは複数指定可能です。[]の場合はどのドメインも許可しません。

設定すると、GenUのアカウント作成時とCognitoでのユーザ作成時にエラーになります。
※設定を変更しても、既存のユーザには影響しません。新規でサインアップ・作成するユーザにのみ適用されます。

{
  "context": {
    "allowedSignUpEmailDomains": ["reqtc.com"]
  }
}

再デプロイします。

npm run cdk:deploy

許可されていないgmail.comのメールアドレスでアカウントの作成を試みるとエラーになることが確認できました。

image-3.png

AWS WAFによるアクセス制限

AWS WAFにより、以下の制限をかけることができます。

  • IPアドレスによる制限
  • 地理的制限

今回はIPアドレスによる制限について確認します。

IPアドレスによる制限

packages/cdk/cdk.json を開き、allowedIpV4AddressRangesに許可するIPv4アドレスのCIDRのリストを、allowedIpV6AddressRangesに許可するIPv6アドレスのCIDRのリストを設定して保存します(デフォルトはnull)。

{
  "context": {
    "allowedIpV4AddressRanges": ["xx.xxx.xxx.xxx/32"],
    "allowedIpV6AddressRanges": ["xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/128"]
  }
}

例ではIPアドレスをピンポイントで指定していますが、CIDR範囲を調整して特定のネットワーク内のIPアドレスのみ許可することもできます。

再デプロイします。

npm run cdk:deploy

許可されていないIPアドレスからサインインしようした場合、エラーが表示されます。

image-5.png

さいごに

GenUのセキュリティ機能について、実際の検証結果とともにご紹介しました。

いずれの場合も、設定した通りの内容でアクセスが制限されていることが確認できました。ドメインによる制限やIPアドレスによる制限など、Cognito側であれこれ設定しなくてもGenUの設定ファイルを編集して再デプロイするだけで済むので楽ですね。

デプロイの設定については公式のデプロイオプションにも詳しく記載されているので、必要に応じてご参照ください。

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る