Amazon API Gateway から Azure API Center への API の同期 (プレビュー)
この記事では、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 に同期されることはありません。
Note
- 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 ソース内の値に基づいて設定されるプロパティを示します。
エンティティ | API Center で構成できるプロパティ | 統合 API ソースにおいて決定されるプロパティ |
---|---|---|
API | まとめ lifecycleStage termsOfService ライセンス externalDocumentation customProperties |
タイトル description kind |
API バージョン | lifecycleStage | タイトル 定義 (同期されている場合) |
環境 | タイトル description kind server.managementPortalUri onboarding customProperties |
server.type |
展開 | タイトル description サーバー 州 customProperties |
server.runtimeUri |
Note
Azure API Center に同期されるエンティティのリソースおよびシステムの ID は自動的に生成され、かつ変更できません。
前提条件
Azure サブスクリプション内の API センター。 作成していない場合は、「クイック スタート: API Center を作成する」を参照してください。
Azure Key Vault。 作成する必要がある場合は、「クイック スタート: Azure portal を使用したキー コンテナーの作成」を参照してください。 キー コンテナーにシークレットを追加または管理するには、少なくとも Key Vault Secrets Officer ロールまたは同等のアクセス許可が必要です。
AmazonAPIGatewayAdministrator
ポリシーがアタッチされた AWS IAM ユーザー ID。Azure CLI の場合
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
Note
az apic
コマンドには、apic-extension
Azure CLI 拡張機能が必要です。az apic
コマンドを使用していない場合は、最初のaz apic
コマンドの実行時に拡張機能を動的にインストールするか、拡張機能を手動でインストールできます。 Azure CLI 拡張機能の詳細については、こちらを参照してください。apic-extension
の最新の変更と更新については、リリース ノートを参照してください。 特定の機能には、拡張機能のプレビューまたは特定のバージョンが必要な場合があります。Note
この記事の 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 シークレット | Upload options | Name | シークレットの値 |
---|---|---|---|
アクセス キー | 手動 | aws-access-key | AWS から取得したアクセス キー ID |
シークレット アクセス キー | 手動 | aws-secret-access-key | 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 を統合する
az apic integration create aws (プレビュー) コマンドを実行して、Amazon API Gateway を API Center に統合します。
リソース グループ、API センター、統合の名前を指定します。
AWS アクセス キーとシークレット アクセス キーの Key Vault シークレット識別子と、Amazon API Gateway がデプロイされている AWS リージョンを指定します。
az apic integration create aws \
--resource-group <resource-group-name> \
--service-name-name <api-center-name> \
--integration-name <aws-integration-name> \
--aws-access-key-reference <access-key-uri> \
--aws-secret-access-key-reference <secret-access-key-uri>
--aws-region-name <aws-region>
環境が API センターに追加されます。 Amazon API Gateway API が API Center のインベントリにインポートされます。
統合を削除する
API ソースが統合されている間は、同期された API を API Center から削除することはできません。 必要に応じて統合を削除できます。 統合を削除する場合:
- API Center のインベントリ内の同期された API は削除されます
- API ソースに関連付けられている環境とデプロイが削除されます
Azure CLI を使用して統合を削除するには、az apic integration delete (プレビュー) コマンドを実行します。 リソース グループ、API センター、統合の名前を指定します。
az apic integration delete \
--resource-group <resource-group-name> \
--service-name <api-center-name> \
--integration-name <integration-name>