type
status
date
slug
summary
tags
category
icon
password
书籍
 

理論

1. API Gateway でのアクセス制御

  • IAM 認証(AWS Signature):
    • AWS の API Gateway では、IAM ユーザーやロールによる認証を行うことができます。IAM の権限を使って、API のリソースへのアクセスを制御できます。
    • 具体的には、execute-api:Invoke の権限を持つ IAM ユーザーやロールに対してアクセスを許可します。
  • AWS Signature:
    • API Gateway へのリクエストは、AWS Signature を使用して署名されることが多いです。これにより、リクエストが正当なものであるかどうかを確認できます。

2. リクエストの追跡と分析

  • AWS X-Ray:
    • AWS X-Ray は、分散アプリケーションのリクエストをトレースし、パフォーマンスのボトルネックや遅延を特定するためのツールです。これを使用することで、API Gateway へのリクエストのフロー全体を可視化し、遅延の原因を特定できます。
    • X-Ray は、リクエストが API Gateway を通過し、バックエンドサービスに到達する過程を追跡し、全体的なパフォーマンスを分析するのに役立ちます。
  • Amazon CloudWatch:
    • CloudWatch はログやメトリクスを収集し、システム全体のパフォーマンスや状態を監視するために使用されます。API Gateway のレスポンス時間やエラーなどのメトリクスを監視できます。

3. API Gateway のアクセス制御方法

  • CORS 設定:
    • API Gateway で CORS(クロスオリジンリソース共有)を設定することができます。これにより、異なるオリジンからのリクエストを許可または制限できます。特にブラウザでのアクセスを制御する場合に有用です。
  • カスタムオーソライザー:
    • Lambda 関数をカスタムオーソライザーとして使用し、リクエストに含まれるトークンや認証情報を検証できます。これにより、柔軟な認証ロジックを実装可能です。

4. 適切なサービスの選定

  • API Gateway と Lambda の組み合わせ:
    • AWS Lambda をバックエンドで使用する場合、API Gateway と連携してサーバーレスアーキテクチャを構築することができます。これにより、高いスケーラビリティと効率的なリソース管理が可能になります。
  • API Gateway と ECS(Fargate):
    • コンテナ化されたアプリケーションを Amazon ECS(Fargate)で実行し、API Gateway をフロントエンドとして使用するアーキテクチャもあります。これにより、スケーラブルで柔軟なバックエンドシステムを構築できます。

まとめ

  • API Gateway でのアクセス制御は IAM 認証や CORS 設定、カスタムオーソライザーなどで行います。
  • リクエストの追跡には AWS X-RayCloudWatch を利用し、遅延やエラーの原因を可視化します。
  • 適切なサービスを選ぶことで、スケーラブルで効率的なシステムを構築できます。
これらの知識を組み合わせて、セキュアでスケーラブルな API を設計することが可能です。

実践

一問道場

質問 #343

ソリューションアーキテクトは、新しい Amazon API Gateway エンドポイントにアクセスできるのが、適切な権限を持つ AWS ユーザーまたはロールに限定されるようにしたいと考えています。ソリューションアーキテクトは、各リクエストのエンドツーエンドのビューを取得してリクエストの待ち時間を分析し、サービスマップを作成したいと考えています。
ソリューションアーキテクトは、API Gateway のアクセス制御をどのように設計し、リクエストの検査を行うことができますか?
A. API Gateway のメソッドで認証を AWS_IAM に設定します。その後、REST API リソースに対して IAMユーザーまたはロールに execute-api:Invoke 権限を付与します。エンドポイントにアクセスする際に、API 呼び出し元が AWS シグネチャを使用してリクエストに署名できるようにします。AWS X-Ray を使用して、API Gateway に対するユーザーリクエストをトレースおよび分析します。
B. API Gateway リソースで CORS を有効化し、Access-Control-Allow-Origin ヘッダーに会社のドメインだけを返すように設定します。その後、REST API リソースに対して IAM ユーザーまたはロールに execute-api:Invoke 権限を付与します。Amazon CloudWatch を使用して、API Gateway に対するユーザーリクエストをトレースおよび分析します。
C. AWS Lambda 関数をカスタムオーソライザーとして作成し、API クライアントに呼び出し時にキーとシークレットを渡すよう依頼します。そして、Lambda を使用して IAM システムに対してキー/シークレットペアを検証します。AWS X-Ray を使用して、API Gateway に対するユーザーリクエストをトレースおよび分析します。
D. API Gateway 用のクライアント証明書を作成します。この証明書をエンドポイントにアクセスする必要がある AWS ユーザーおよびロールに配布します。エンドポイントにアクセスする際に、API 呼び出し元がクライアント証明書を渡せるようにします。Amazon CloudWatch を使用して、API Gateway に対するユーザーリクエストをトレースおよび分析します。
 

解説

この問題の主なポイントは、以下の2つの要件を満たす解決策を選択することです:
  1. API Gateway のアクセス制御
    1. API Gateway に対するアクセスを、適切な権限を持つユーザーまたはロールのみに制限する方法を設計します。これには、認証・認可の仕組みが必要です。
  1. リクエストの追跡と分析
    1. 各リクエストのエンドツーエンドの視点を取得し、リクエストの遅延を分析したり、サービスマップを生成することで、システムの依存関係とパフォーマンスを可視化します。

各選択肢の解説

A. AWS_IAM 認証 + AWS X-Ray の使用

  • アクセス制御: API Gateway のメソッドに AWS_IAM 認証を設定することで、AWS の IAM ユーザーまたはロールのアクセスを制限します。
    • IAM ユーザー/ロールに execute-api:Invoke 権限を付与することで、API の実行を許可します。
    • API 呼び出し元はリクエストに AWS シグネチャ(AWS Signature)を付与する必要があります。
  • リクエストの追跡: AWS X-Ray を使用して、API Gateway に対するリクエストをトレースし、エンドツーエンドでリクエストを可視化します。
  • 評価: IAM 認証と X-Ray の組み合わせにより、アクセス制御とリクエスト追跡の両方を実現する最適な選択肢です。

B. CORS 設定 + CloudWatch の使用

  • アクセス制御: CORS(クロスオリジンリソース共有)を有効化し、特定のオリジン(例: 会社のドメイン)のみリソースにアクセス可能にします。IAM ユーザー/ロールに execute-api:Invoke 権限を付与します。
  • リクエストの追跡: Amazon CloudWatch を使用してリクエストをトレースしますが、CloudWatch は X-Ray のような詳細なサービスマップや依存関係分析を提供しません。
  • 評価: CORS はオリジン制御を提供しますが、認証の仕組みが不十分であり、X-Ray の代わりに CloudWatch を使用するため、追跡機能が限定的です。

C. カスタムオーソライザー(Lambda 関数) + AWS X-Ray の使用

  • アクセス制御: Lambda をカスタムオーソライザーとして使用し、API クライアントが渡すキーとシークレットを検証します。
    • カスタムオーソライザーは柔軟性が高いですが、IAM 認証より設定や管理が複雑になります。
  • リクエストの追跡: AWS X-Ray を使用して、リクエストをトレースします。
  • 評価: カスタムオーソライザーは柔軟性がありますが、IAM 認証を使ったよりシンプルなソリューションと比較すると複雑で、運用負荷が増します。

D. クライアント証明書 + CloudWatch の使用

  • アクセス制御: API Gateway のクライアント証明書を使用し、エンドポイントへのアクセスを制御します。証明書をユーザーやロールに配布する必要があります。
  • リクエストの追跡: Amazon CloudWatch を使用してリクエストをトレースします。
  • 評価: クライアント証明書は認証手段として有効ですが、証明書の管理や配布が煩雑です。また、CloudWatch は X-Ray のような詳細な追跡機能を提供しません。

結論

正解: A
理由:
  • アクセス制御において、IAM 認証を使用することで、AWS の標準的な認証機能を活用できます。これは、設定が簡単で安全性が高いです。
  • リクエストの追跡において、AWS X-Ray はサービスマップの作成や遅延分析に最適なツールです。
  • 全体的に、シンプルで効率的なソリューションを提供します。

リクエストの流れを簡単に説明します:

1. クライアントがリクエストを送信

  • クライアント(ブラウザやアプリケーション)が API Gateway のエンドポイントにリクエストを送ります。
  • リクエストには AWS Signature(IAM 認証情報) を含める必要があります。

2. API Gateway が認証を実施

  • API Gateway はリクエストを受信すると、以下を確認します:
      1. 認証情報の有効性(IAM ポリシーで権限があるか)。
      1. エンドポイントへのアクセス権限があるかexecute-api:Invoke)。

3. 認証後、リクエストを処理

  • 認証が成功すると、API Gateway はバックエンドサービス(例えば Lambda や EC2)にリクエストを転送します。
  • API Gateway はリクエスト処理の詳細(遅延、レスポンス時間など)を収集します。

4. AWS X-Ray でリクエストを追跡

  • API Gateway はリクエストの情報を AWS X-Ray に送信します:
      1. クライアントから API Gateway への通信時間。
      1. API Gateway からバックエンドへの通信時間。
      1. 全体の遅延やエラーの原因。

5. クライアントにレスポンスを返す

  • バックエンドがリクエストを処理し、API Gateway を通じてクライアントにレスポンスを返します。
  • AWS X-Ray にはレスポンスに関するデータも記録されます。

まとめたリクエストの流れ

  1. クライアント → API Gateway(認証チェック)。
  1. API Gateway → バックエンド(リクエスト処理)。
  1. バックエンド → API Gateway → クライアント(レスポンス返却)。
  1. X-Ray でリクエスト全体の追跡と分析。
この流れを通じて、セキュアなアクセス制御とリクエストの詳細な可視化が可能になります。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
344-AWS SAP AWS 「理論・実践・一問道場」変更セット342-AWS SAP AWS 「理論・実践・一問道場」三層Web
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
営業保証金-21問
2025-5-6
平成26年秋期 午後問1
2025-5-6
令和5年秋期 午後問1
2025-5-3
令和2年秋期 午後問1
2025-5-2
第1回:オリエンテーション/意思決定と会計情報
2025-4-30
第1回:イントロダクション
2025-4-30
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
📖 博客语言使用比例
🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!