この記事では、Amazon API Gateway を統合して、API Center のインベントリでゲートウェイの API を継続的に最新の状態に保つ方法について説明します。
Amazon API Gateway の統合について
API Center の API ソースとして Amazon API Gateway を統合すると、継続的な同期が可能になり、API インベントリが最新の状態に保たれます。 Azure API Center では、Azure API Management などのソースから API を同期することもできます。
Amazon API Gateway を API ソースとして統合すると、次のことが発生します。
- API Gateway からの API と、必要に応じて API 定義 (仕様) が、API Center のインベントリに追加されます。
- API センターで Azure API Gateway という種類の環境を構成します。
- 同期された API 定義ごとに、関連付けられたデプロイが作成されます。
同期は、Amazon API Gateway から Azure API Center への一方向です。つまり、API Center での API の更新が Amazon API Gateway に同期されることはありません。
注
- Amazon API Gateway の統合は現在プレビュー段階です。
- 統合 API ソースの数には制限があります。
- Amazon API Gateway の API は、1 時間に 1 回 API センターに同期されます。 REST API のみが同期されます。
- 統合中に含めるオプションを選択した場合、API 定義も API センターに同期されます。 デプロイされた API からの定義のみが同期されます。
Amazon API Gateway から同期されたエンティティ
API センター内の同期された API にメタデータ プロパティやドキュメントを追加または更新して、関係者が API を発見、理解、使用できるようにすることができます。 詳しくは、Azure API Center の組み込みおよびカスタム メタデータ プロパティに関する記事を参照してください。
次の表には、Azure API Center において変更できるエンティティ プロパティと、API ソース内の値に基づいて設定されるプロパティを示します。
| Entity | API Center で構成できるプロパティ | 統合 API ソースにおいて決定されるプロパティ |
|---|---|---|
| API | 概要 lifecycleStage 利用規約 ライセンス 外部文書 customProperties |
title 説明 kind |
| API バージョン | lifecycleStage | title 定義 (同期されている場合) |
| 環境 | title 説明 kind server.managementPortalUri オンボーディング customProperties |
サーバーの種類 |
| デプロイ | title 説明 サーバー 状態 customProperties |
server.runtimeUri |
注
Azure API Center に同期されるエンティティのリソースおよびシステムの ID は自動的に生成され、かつ変更できません。
前提条件
Azure サブスクリプション内の API センター。 作成していない場合は、「クイック スタート: API Center を作成する」を参照してください。
Azure Key Vault。 作成する必要がある場合は、「クイック スタート: Azure portal を使用したキー コンテナーの作成」を参照してください。 キー コンテナーにシークレットを追加または管理するには、少なくとも Key Vault Secrets Officer ロールまたは同等のアクセス許可が必要です。
Azure CLI の場合
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の概要」を参照してください。
CLI リファレンス コマンドをローカル環境で実行したい場合は、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「 Azure CLI を使用した Azure への認証」を参照してください。
初回使用時に求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。
インストールされているバージョンと依存ライブラリを調べるには、az version を実行します。 最新バージョンにアップグレードするには、az upgrade を実行します。
注
az apicコマンドには、apic-extensionAzure CLI 拡張機能が必要です。az apicコマンドを使用していない場合は、最初のaz apicコマンドの実行時に拡張機能を動的にインストールするか、拡張機能を手動でインストールできます。 Azure CLI 拡張機能の詳細については、こちらを参照してください。の最新の変更と更新については、
apic-extensionを参照してください。 特定の機能には、拡張機能のプレビューまたは特定のバージョンが必要な場合があります。注
この記事の Azure CLI コマンドの例は、PowerShell または bash シェルで実行できます。 変数の構文が異なるために必要な場合は、2 つのシェルで個別のコマンド例が提供されています。
IAM ユーザー アクセス キーを作成する
Amazon API Gateway に対して API センターを認証するには、AWS IAM ユーザーのアクセスキーが必要です。
AWS マネジメントコンソールを使用して必要なアクセスキー ID と秘密鍵を生成するには、AWS ドキュメントの「自分用のアクセス キーを作成する」を参照してください。
安全な場所にアクセス キーを保存します。 次の手順では、それらを Azure Key Vault に保存します。
注意
アクセス キーは長期的な資格情報であり、パスワードと同じように安全に管理する必要があります。 アカウント キーの保護に関する詳細情報
IAM ユーザー アクセス キーを Azure Key Vault に保存する
次の表で推奨される構成を使用して、2 つの IAM ユーザー アクセス キーを手動でアップロードし、Azure Key Vault に安全に保存します。 詳細については、「クイック スタート: Azure portal を使用して Azure Key Vault との間でシークレットの設定と取得を行う」を参照してください。
| AWS シークレット | アップロード オプション | 名前 | シークレット値 |
|---|---|---|---|
| アクセス キー | マニュアル | aws-access-key | AWS から取得したアクセス キー ID |
| シークレット アクセス キー | マニュアル | AWSシークレットアクセスキー | AWS から取得したシークレット アクセス キー |
各シークレットのシークレット識別子、https://<key-vault-name>.vault.azure.net/secrets/<secret-name> のような URI を書き留めます。 これらの識別子は、次の手順で使用します。
API センターでマネージド ID を有効にする
このシナリオでは、API Center はマネージド ID を使用して Azure リソースにアクセスします。 ニーズに応じて、1 つのシステム割り当て、または 1 つ以上のユーザー割り当てのマネージド ID を有効にします。
次の例は、Azure portal または Azure CLI を使用して、システム割り当てマネージド ID を有効にする方法を示しています。 大まかに言うと、構成手順はユーザー割り当てマネージド ID の場合も同様です。
- ポータルで、API Center に移動します。
- 左側のメニューの [セキュリティ] で、[マネージド ID] を選択します。
- [システム割り当て済み] を選択し、状態を [オン] に設定します。
- [保存] を選択します。
マネージド ID に Key Vault シークレット ユーザー ロールを割り当てる
API のインポートを許可するには、API センターのマネージド ID に、Azure キー コンテナー内の Key Vault シークレット ユーザー ロールを割り当てます。 Azure portal か、Azure CLI を使用できます。
- ポータルで、キー コンテナーに移動します。
- 左側のメニューで [アクセス制御 (IAM)] を選択します。
- [ロールの割り当ての追加] を選択します。
-
[ロールの割り当ての追加] ペインで、次のように値を設定します。
- [ロール] タブで [キー コンテナー シークレット ユーザー] を選択します。
- [メンバー] タブの [アクセスの割り当て先] で、[マネージド ID]>[+ メンバーの選択] を選びます。
- [マネージド ID の選択] ページ上で、前のセクション内で追加した API Center のシステム割り当てマネージド ID を選択します。 [選択]をクリックします。
- [確認と割り当て] を選択します。
Amazon API Gateway を統合する
Amazon API Gateway は、ポータルまたは Azure CLI を使用して統合できます。
- ポータルで、API Center に移動します。
- [ プラットフォーム] で 、[ 統合] を選択します。
- Amazon API Gateway から > を選択します。
-
[Amazon API Gateway Service の統合] ページで、次の手順を実行します。
- AWS アクセスキーと AWS シークレットアクセスキーについては、[選択] をクリックして、保存したサブスクリプション、キーコンテナー、シークレットを選択します。
- Amazon API Gateway がデプロイされている AWS リージョン を選択します。
- [ 統合の詳細] に識別子を入力します。
- [環境の詳細] 内で、[環境のタイトル] (名前)、[環境の種類]、[環境の説明] (省略可能) を入力します。
-
[API の詳細]:
- 同期された API の [ライフサイクル] を選択します。 (API のこの値は、API センターに追加した後で更新できます。)
- 必要に応じて、同期された API に API 定義を含めるかどうかを選択します。
- を選択してを作成します。
環境が API センターに追加されます。 Amazon API Gateway API が API Center のインベントリにインポートされます。
統合を削除する
API ソースが統合されている間は、同期された API を API Center から削除することはできません。 必要に応じて統合を削除できます。 統合を削除する場合:
- API Center のインベントリ内の同期された API は削除されます
- API ソースに関連付けられた環境とデプロイは削除されます
ポータルまたは Azure CLI を使用して統合を削除できます。
- ポータルで、API Center に移動します。
- [ 資産] で、[ 環境>統合 (プレビュー) を選択します。
- 統合を選択し、[ 削除 ] (ごみ箱アイコン) を選択します。