𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
Amazon Bedrock Guardrailsで生成AIの安全性を確保する方法【SES案件対応ガイド】

Amazon Bedrock Guardrailsで生成AIの安全性を確保する方法【SES案件対応ガイド】

AWSAmazon BedrockGuardrailsAI安全性
目次
⚡ 3秒でわかる!この記事のポイント
  • Bedrock Guardrailsで生成AIの入出力を自動フィルタリングしセキュリティリスクを95%低減
  • PII(個人情報)の自動検出・マスキングで情報漏洩対策をインフラ層で実現
  • コンテンツフィルター・トピック制御・ワードフィルターの多層防御でエンタープライズ品質を確保

生成AIをプロダクションに導入する際、最大の懸念事項の一つが安全性の確保です。有害コンテンツの生成、個人情報の漏洩、不適切なトピックへの応答 — これらのリスクを適切に管理しなければ、企業での生成AI活用は進みません。

Amazon Bedrock Guardrailsは、生成AIの入出力に対してフィルタリングと制御を行うマネージドサービスです。SES案件でAI機能の開発に携わるエンジニアにとって、必須の知識となっています。

この記事でわかること
  • Bedrock Guardrailsの基本概念と機能一覧
  • コンテンツフィルター・トピック制御の設定方法
  • PII(個人情報)の検出・マスキング実装
  • SES案件でのGuardrails活用パターン

Amazon Bedrock Guardrailsとは

生成AIのセーフティレイヤー

Amazon Bedrock Guardrailsは、Bedrockの基盤モデル(Claude、Titan、Llama等)の入力と出力の両方にフィルタリングを適用するサービスです。

Guardrailsの主要機能は以下の4つです。

  1. コンテンツフィルター: 有害コンテンツ(暴力、性的、ハラスメント等)の検出とブロック
  2. トピック制御: 特定のトピック(投資アドバイス、医療診断等)を禁止
  3. ワードフィルター: 特定キーワードやフレーズのブロック
  4. PII(個人情報)制御: 電話番号、メール、住所等の検出とマスキング

アーキテクチャ概要

ユーザー入力

┌──────────────────┐
│  Guardrails      │
│  (入力フィルター) │
│  ・コンテンツ    │
│  ・トピック      │
│  ・PII検出       │
└───────┬──────────┘

┌──────────────────┐
│  基盤モデル      │
│  (Claude等)      │
└───────┬──────────┘

┌──────────────────┐
│  Guardrails      │
│  (出力フィルター) │
│  ・コンテンツ    │
│  ・ワード        │
│  ・PII マスク    │
└───────┬──────────┘

ユーザーへの応答

この入出力の二重チェックにより、アプリケーション層でのバリデーション実装を最小限に抑えられます。

コンテンツフィルターの設定

フィルターカテゴリと感度レベル

Bedrock Guardrailsのコンテンツフィルターは、以下のカテゴリをカバーしています。

カテゴリ内容フィルター対象
Hate差別的・偏見的な内容入力・出力
Insults侮辱的な表現入力・出力
Sexual性的な内容入力・出力
Violence暴力的な内容入力・出力
Misconduct犯罪行為の助長入力・出力
Prompt Attackプロンプトインジェクション入力のみ

各カテゴリは4段階の感度レベル(NONE / LOW / MEDIUM / HIGH)で設定できます。

AWS CLIでの設定例

aws bedrock create-guardrail \
  --name "ses-project-guardrail" \
  --description "SES案件向けAIチャットボットのGuardrail" \
  --content-policy-config '{
    "filtersConfig": [
      {
        "type": "SEXUAL",
        "inputStrength": "HIGH",
        "outputStrength": "HIGH"
      },
      {
        "type": "VIOLENCE",
        "inputStrength": "HIGH",
        "outputStrength": "HIGH"
      },
      {
        "type": "HATE",
        "inputStrength": "HIGH",
        "outputStrength": "HIGH"
      },
      {
        "type": "INSULTS",
        "inputStrength": "MEDIUM",
        "outputStrength": "MEDIUM"
      },
      {
        "type": "MISCONDUCT",
        "inputStrength": "HIGH",
        "outputStrength": "HIGH"
      },
      {
        "type": "PROMPT_ATTACK",
        "inputStrength": "HIGH",
        "outputStrength": "NONE"
      }
    ]
  }' \
  --blocked-input-messaging "申し訳ございません。このリクエストにはお応えできません。" \
  --blocked-output-messaging "申し訳ございません。適切な回答を生成できませんでした。"

Terraform/CDKでの設定

Infrastructure as Code(IaC)でGuardrailsを管理する方法も重要です。

resource "aws_bedrock_guardrail" "ses_project" {
  name        = "ses-project-guardrail"
  description = "SES案件向けAIチャットボットのGuardrail"

  blocked_input_messaging  = "申し訳ございません。このリクエストにはお応えできません。"
  blocked_output_messaging = "申し訳ございません。適切な回答を生成できませんでした。"

  content_policy_config {
    filters_config {
      type             = "SEXUAL"
      input_strength   = "HIGH"
      output_strength  = "HIGH"
    }
    filters_config {
      type             = "VIOLENCE"
      input_strength   = "HIGH"
      output_strength  = "HIGH"
    }
    filters_config {
      type             = "HATE"
      input_strength   = "HIGH"
      output_strength  = "HIGH"
    }
    filters_config {
      type             = "PROMPT_ATTACK"
      input_strength   = "HIGH"
      output_strength  = "NONE"
    }
  }
}

Bedrock Guardrails多層防御アーキテクチャ

トピック制御の設定

業務外トピックのブロック

企業のAIチャットボットでは、業務に関係ないトピックをブロックすることが重要です。

aws bedrock create-guardrail \
  --name "ses-topic-control" \
  --topic-policy-config '{
    "topicsConfig": [
      {
        "name": "investment-advice",
        "definition": "株式投資、仮想通貨、FXなどの金融投資に関するアドバイスや推奨",
        "examples": [
          "この株は買い時ですか?",
          "ビットコインの将来性はどうですか?"
        ],
        "type": "DENY"
      },
      {
        "name": "medical-diagnosis",
        "definition": "病気の診断、治療法の推奨、薬の処方に関する内容",
        "examples": [
          "この症状は何の病気ですか?",
          "この薬を飲んでも大丈夫ですか?"
        ],
        "type": "DENY"
      },
      {
        "name": "competitor-comparison",
        "definition": "競合他社の製品やサービスとの比較、評価",
        "examples": [
          "A社とB社のどちらがいいですか?",
          "競合他社のサービスについて教えてください"
        ],
        "type": "DENY"
      }
    ]
  }'

SES業界固有のトピック制御

SES案件のAIアプリケーションでは、以下のトピック制御が特に重要です。

{
  "topicsConfig": [
    {
      "name": "salary-negotiation",
      "definition": "具体的な単価交渉のアドバイスや他社の単価情報の開示",
      "type": "DENY"
    },
    {
      "name": "client-confidential",
      "definition": "クライアント企業の内部情報、プロジェクトの機密情報",
      "type": "DENY"
    },
    {
      "name": "legal-advice",
      "definition": "契約書の法的解釈、労働法に関する具体的なアドバイス",
      "type": "DENY"
    }
  ]
}

PII(個人情報)の検出とマスキング

PII検出の設定

Bedrock Guardrailsは以下のPIIタイプを検出・マスキングできます。

PIIタイプ検出対象推奨アクション
EMAILメールアドレスANONYMIZE
PHONE電話番号ANONYMIZE
NAME個人名ANONYMIZE
ADDRESS住所BLOCK
SSN社会保障番号BLOCK
CREDIT_CARDクレジットカード番号BLOCK
DRIVER_ID運転免許証番号BLOCK
IP_ADDRESSIPアドレスANONYMIZE
aws bedrock create-guardrail \
  --name "ses-pii-protection" \
  --sensitive-information-policy-config '{
    "piiEntitiesConfig": [
      {
        "type": "EMAIL",
        "action": "ANONYMIZE"
      },
      {
        "type": "PHONE",
        "action": "ANONYMIZE"
      },
      {
        "type": "NAME",
        "action": "ANONYMIZE"
      },
      {
        "type": "ADDRESS",
        "action": "BLOCK"
      },
      {
        "type": "CREDIT_DEBIT_CARD_NUMBER",
        "action": "BLOCK"
      }
    ],
    "regexesConfig": [
      {
        "name": "my-number",
        "description": "日本のマイナンバー(12桁)",
        "pattern": "\\b\\d{4}\\s?\\d{4}\\s?\\d{4}\\b",
        "action": "BLOCK"
      },
      {
        "name": "employee-id",
        "description": "社員番号パターン",
        "pattern": "\\b[A-Z]{2}-\\d{6}\\b",
        "action": "ANONYMIZE"
      }
    ]
  }'

ANONYMIZEとBLOCKの使い分け

  • ANONYMIZE: PIIをプレースホルダー({EMAIL}等)に置換して処理を続行
  • BLOCK: PIIが検出された場合、リクエスト全体をブロック

SES案件では、以下の使い分けが推奨されます。

  • チャットボット: 入力はANONYMIZE(会話を続行)、出力はBLOCK(PII出力を防止)
  • 文書処理: 入力・出力ともにANONYMIZE(処理結果が必要)
  • 金融系: 入力・出力ともにBLOCK(厳格なコンプライアンス対応)

ワードフィルターの活用

カスタムワードリスト

業界固有の用語や企業名をフィルタリングする場合に活用します。

aws bedrock create-guardrail \
  --name "ses-word-filter" \
  --word-policy-config '{
    "wordsConfig": [
      {"text": "社外秘"},
      {"text": "内部資料"},
      {"text": "取扱注意"}
    ],
    "managedWordListsConfig": [
      {"type": "PROFANITY"}
    ]
  }'

マネージドワードリスト

Bedrockが提供するマネージドワードリスト(PROFANITY)は、多言語の不適切表現を網羅しています。カスタムリストと組み合わせることで、包括的なフィルタリングが実現できます。

実践例 — SES案件での実装パターン

パターン1: カスタマーサポートBot

import boto3
import json

bedrock = boto3.client('bedrock-runtime')

def invoke_with_guardrail(user_input: str) -> str:
    response = bedrock.invoke_model(
        modelId='anthropic.claude-3-5-sonnet-20241022-v2:0',
        guardrailIdentifier='ses-guardrail-id',
        guardrailVersion='DRAFT',
        body=json.dumps({
            'anthropic_version': 'bedrock-2023-05-31',
            'max_tokens': 1024,
            'messages': [
                {
                    'role': 'user',
                    'content': user_input
                }
            ]
        })
    )

    result = json.loads(response['body'].read())

    # Guardrailの介入チェック
    if response.get('x-amzn-bedrock-guardrail-action') == 'BLOCKED':
        return "申し訳ございません。このリクエストにはお応えできません。"

    return result['content'][0]['text']

パターン2: 文書要約サービス

def summarize_with_pii_protection(document: str) -> str:
    """PII保護付きの文書要約"""
    response = bedrock.apply_guardrail(
        guardrailIdentifier='ses-pii-guardrail',
        guardrailVersion='1',
        source='INPUT',
        content=[{
            'text': {'text': document}
        }]
    )

    if response['action'] == 'GUARDRAIL_INTERVENED':
        # PIIがマスキングされたテキストで処理続行
        sanitized_text = response['outputs'][0]['text']
        # マスキング済みテキストで要約を生成
        return generate_summary(sanitized_text)
    else:
        return generate_summary(document)

パターン3: RAG(検索拡張生成)との連携

def rag_with_guardrails(query: str, knowledge_base_id: str) -> str:
    """Guardrails付きRAG検索"""
    response = bedrock.retrieve_and_generate(
        input={'text': query},
        retrieveAndGenerateConfiguration={
            'type': 'KNOWLEDGE_BASE',
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': knowledge_base_id,
                'modelArn': 'anthropic.claude-3-5-sonnet-20241022-v2:0',
                'generationConfiguration': {
                    'guardrailConfiguration': {
                        'guardrailId': 'ses-guardrail-id',
                        'guardrailVersion': '1'
                    }
                }
            }
        }
    )
    return response['output']['text']

モニタリングとログ分析

CloudWatchでのGuardrails監視

aws cloudwatch get-metric-statistics \
  --namespace "AWS/Bedrock/Guardrails" \
  --metric-name "GuardrailsBlockedCount" \
  --dimensions Name=GuardrailId,Value=ses-guardrail-id \
  --start-time 2026-03-25T00:00:00Z \
  --end-time 2026-04-01T00:00:00Z \
  --period 86400 \
  --statistics Sum

監視すべき主要メトリクス

  • GuardrailsBlockedCount: ブロックされたリクエスト数
  • GuardrailsFilteredCount: フィルタリングされた項目数
  • GuardrailsLatency: Guardrails処理のレイテンシ
  • PIIDetectedCount: PII検出数(カスタムメトリクス)

高頻度のブロックが発生している場合は、フィルター感度の調整やユーザーガイダンスの改善が必要です。

Amazon Bedrockの基礎知識はこちらで確認できます。

AWS IAMセキュリティガイドでアクセス制御の詳細を学べます。

AWS CloudWatchモニタリングガイドで監視設定の詳細を確認できます。

SES案件でのGuardrails需要

Guardrailsスキルの市場価値

生成AIの企業導入が加速する中、AI安全性エンジニアの需要が高まっています。

SES市場では以下の案件でGuardrailsスキルが求められます。

  • 金融機関: コンプライアンス対応のAIチャットボット開発
  • 医療機関: 患者データ保護のAI問診システム
  • EC企業: 商品レコメンドAIの公平性確保
  • 公共機関: 市民向けAI窓口の安全性担保
  • SaaS企業: AIアシスタント機能のセーフティ実装

学習ロードマップ

  1. 基礎: AWS認定クラウドプラクティショナー取得
  2. AI基礎: Amazon Bedrockの基本操作を習得
  3. セキュリティ: Guardrailsの設定・テスト方法を習得
  4. 応用: RAGやAgent Teamsとの連携実装
  5. 運用: CloudWatch監視とインシデント対応

まとめ — Guardrailsで生成AIを安全にプロダクション投入する

生成AIの企業導入において、安全性の確保はオプションではなく必須です。Amazon Bedrock Guardrailsを適切に設定することで、セキュリティリスクを最小化しつつ、AIの価値を最大限に引き出せます。

本記事のポイントをまとめます。

  • ✅ コンテンツフィルターで有害コンテンツの生成を入出力で多層防御
  • ✅ トピック制御で業務外の話題をインフラ層で自動ブロック
  • ✅ PII検出・マスキングで個人情報漏洩リスクをゼロに近づける
  • ✅ ワードフィルターで業界固有のセンシティブ用語を制御
  • ✅ CloudWatch連携でGuardrailsの動作をリアルタイム監視

SES案件でAI機能の開発に携わるエンジニアは、Guardrailsを「知っている」から「使いこなせる」レベルまでスキルアップすることで、市場価値を大きく高められます。

AWS完全攻略シリーズをもっと読む

AWSの活用テクニックをさらに深く学びたい方は、完全攻略シリーズの他のエピソードもチェックしてください。

シリーズ一覧を見る →

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修