2024年05月29日
API GatewayでREST APIを構築する際の必見ポイント
以下のような課題を抱えていませんか?
「社内で利用するシステムが複数散らばっていて使いづらい」
「属人化をなくしてプロセスを自動化したい」
「外部サービスとの連携をシームレスに行いたい」
システムをAPI化することにより、これらの課題を解決できるかもしれません。
弊社には、お客様のシステムのAPI化を支援した豊富な経験があります。
今回は、AWSのAPI Gatewayを使用してREST APIを構築する際の見逃せないポイントを3つご紹介します。これらのポイントを押さえることで、より効果的なAPIの構築が可能となり、お客様の課題解決が円滑に進められます。
URIのルール
APIで重要となるのはAPI仕様の標準化であり、RESTと呼ばれる設計手法を用います。その中でもパスの設計(URI)は非常に重要であり、以下にその主要なポイントをいくつか紹介します。
まず、操作を行う対象を決めるリソースパス(例:ユーザ情報)についてですが、URIが長すぎると理解しづらくなるため、最大2階層までに制限することが推奨されます。
次に、リソース名は複数形(例:’users’)にすることで、そのリソースが集合体を表すことを明示的に示すことができます。
また、一つのリソースに対して複数の操作が必要な場合、同じURI(例:’users’)に対してHTTPメソッドを使い分けることで、それぞれの操作を行うことができます。
これがRESTの基本的な考え方です。例えばユーザ登録APIの場合はPOSTメソッド、ユーザ情報照会APIの場合はGETメソッドを利用します。
さらに、APIが複雑なほど、利用者が使いやすいURI設計が求められます。どのようなURIが最適かは、業務の流れや分類などに基づいて検討する必要があります。
これらのポイントを押さえることで、より効果的なAPIの設計と構築が可能となります。
APIのセキュリティ対策
APIの構築においては、セキュリティ対策が重要な要素となります。適切な対策が行われない場合、不正なユーザによるシステム攻撃や、保護が不十分なAPIによる機密データの漏洩といったリスクが生じます。
以下に、API Gatewayにおける効果的なセキュリティ対策について説明します。
まず、特定のユーザのみがAPIを利用できるようにするためには、認証・認可の設定が必要です。詳細については後述します。
次に、API GatewayはWeb Application Firewall(WAF)に対応しています。これにより、送信元IPの制限やホワイトリスト・ブラックリストの登録が可能となり、セキュリティを強化できます。さらに、API Gatewayのリソースポリシーを利用することで、特定のアカウントからのアクセス制御やソースVPCの制御なども実施できます。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-control-access-to-api.html
これらの対策を適切に行うことで、APIのセキュリティを確保しつつ、APIの機能を最大限に活用することが可能となります。セキュリティ対策はAPIの構築と運用において不可欠な要素であり、常に注意深く取り組む必要があります。
APIの認証認可方式
APIのセキュリティ対策として認証認可方式の選択は重要な要素です。API Gatewayでは、IAM認証、Cognito認証、カスタム認証の3つの主要な認証方式が提供されています。
・IAM認証: API利用者にIAMユーザが割り当てられている場合、または他のAWSサービスからAPI Gatewayを呼び出す場合には、IAMロールを利用したIAM認証が適切です。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/permissions.html
・Cognito認証: API利用者にIAMユーザが割り当てられていない場合、CognitoユーザプールにCognitoユーザを登録し、認証を行うことが考えられます。また、Azure ADやFacebookなどの外部認証をIDプロバイダとして設定し、Cognito認証を行う方法もあります。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html
これらは一部の代表的な認証パターンであり、具体的な状況に応じて最適な認証方式を選択することが求められます。セキュリティ対策は状況に応じて柔軟に対応することが重要です。
まとめ
REST APIで見逃せない3つのポイントをご紹介させていただきました。システムをAPI化することにより、お客様が抱えている課題を解決できるかもしれません。
JSOLでは、お客様の会社や業務の状況に応じた最適なソリューションを提供します。既存の機能をAPI化したい、生成系AIを利用したAPIを作成したいといったご要望がございましたら、ぜひ当社までお問い合わせください。
お客様のビジネスを強力にサポートするための最適なAPI設計を一緒に考えていきましょう。