AppKeys と TenantIDsの使用 - Amazon Chime SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AppKeys と TenantIDsの使用

AppKeys および TenantIDs を使用して、ネットワークから特定のアプリケーションの Amazon Chime SDK WebRTC メディアセッションへのアクセスを制限できます。

開発者は、UDP 経由でリアルタイムな動画を送受信するアプリケーションを作成するために、Amazon Chime SDK を使用します。アプリケーションユーザーには CHIME_MEETINGS サブネットへの UDP アクセスが必要です。組織 (ネットワーク所有者) は、 AppKeys と TenantIDsを使用して、ネットワークからのアクセスを特定のアプリケーションの WebRTC メディアセッションのみに制限できます。

例 1: の使用 AppKeys

App-A と App-B が Amazon Chime SDK を使用する場合、組織は App-A がネットワークから WebRTC メディアセッションにアクセスすることを許可できますが、App-B と Amazon Chime SDK を使用するその他のアプリケーションをブロックできます。組織は、App-A の AppKey と HTTPS プロキシを使用してこれを行うことができます。詳細については、このトピックで後述する「アクセスを特定のアプリケーションに制限する」を参照してください。

例 2: AppKeys と TenantIDs

アプリ A が一般に公開され、多くの顧客によって使用されている場合は、組織でユーザーがセッションに参加している場合にのみ、アプリ A で自社のネットワークから WebRTC メディアセッションにアクセスできるようにして、他のすべてのアプリ A セッションへのアクセスをブロックするとよいでしょう。組織は、アプリケーションの AppKey、組織の TenantID 、および HTTPS プロキシを使用してこれを行うことができます。詳細については、このトピックで後述する「アクセスを特定のテナントに制限する」を参照してください。

AppKeys および TenantIDs を使用するには、HTTPS ヘッダーをリクエストに追加できる HTTPS プロキシサーバーが必要です。次の図は、 AppKeys と TenantIDsの仕組みを示しています。

AppKeys と TenantIDs WebRTC セッションへのアプリケーションとテナントのアクセスを制御する方法を示す図。

この図では、アプリ A にはテナント A-1 と A-2 があり、アプリ B にはテナント B-1 と B-2 があります。この場合、 AppKey のみが App-A に WebRTC メディアセッションへの接続を許可し、テナント ID はテナント A-1 のみをセッションに許可します。

アクセスを特定のアプリケーションに制限する

AppKey は、Amazon Chime が AWS アカウントごとに作成する、一貫性のある一意の 256 ビット値です。をお持ちでない場合は AppKey、Amazon Support にリクエストできます。複数の AWS アカウントがある場合は、すべてのアカウントに共通 AppKey をリクエストできます。

注記

を AppKeys パブリックに安全に共有し、他の組織がネットワークからのアクセスを制限できるようにします。

Amazon Chime SDK は、セッションの作成に使用された AWS アカウント ID AppKey に基づいて、各 WebRTC メディアセッションを に自動的に関連付けます。ネットワークからのアクセスを特定のアプリケーションに制限するには、次の手順を実行します。

  1. すべてのアウトバウンドリクエストを HTTPS プロキシサーバー経由で CHIME_MEETINGS サブネットにルーティングします。

  2. CHIME_MEETINGS サブネットへのすべてのアウトバウンドリクエストに次のヘッダーを追加するようにプロキシサーバーを設定します。

    X-Amzn-Chime-App-Keys: 許可される のカンマ区切りリスト AppKeys

    例えば、 X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-Cは、それらに関連付けられているアプリがサブネットにアクセス AppKeys できるようにします。

Amazon Chime SDK では X-Amzn-Chime-App-Keys ヘッダーに対するインバウンド WebRTC メディアセッションの接続を確認し、次のロジックを適用します。

  1. X-Amzn-Chime-App-Keys ヘッダーが存在し、セッションの が含まれている場合は AppKey、接続を受け入れます。

  2. X-Amzn-Chime-App-Keys ヘッダーは存在するが、セッションの が含まれていない場合は AppKey、403 エラーで接続を拒否します。

  3. X-Amzn-Chime-App-Keys ヘッダーが存在しない場合、接続を受け入れます。ユーザーが組織のネットワークの外部からアプリケーションにアクセスできる場合は、セッションにもアクセスできます。

アクセスを特定のテナントに制限する

TenantID は開発者が作成した不透明な識別子です。TenantID については、次の点に注意してください。

  • TenantIDsはアプリケーション間で一意である保証がないため、テナント TenantID AppKeyリストごとに を指定する必要があります。

  • TenantID では大文字と小文字が区別されます。開発者の指示どおりに正確に入力してください。

  • 組織で複数のアプリケーションへのアクセスを制限できますが、それらのアプリケーションの一部には TenantID しか指定できません。TenantID のないアプリケーションは、すべての WebRTC メディアセッションに接続できます。

メディアセッションを TenantIDs、デベロッパーはまず TenantIdsプロパティと TenantIDsのリストを CreateMeetingまたは CreateMeetingWithAttendeesリクエストに追加する必要があります。

例:

CreateMeeting(..., TenantIds : [ tenantId1, tenantId2 ] )

組織のネットワークからのアクセスを特定のアプリケーションにおける自社の WebRTC メディアセッションに制限するには、次の手順を実行します。

  1. アクセスを特定のアプリケーションに制限する」の手順を実行します。

  2. アウトバウンド接続に X-Amzn-Chime-Tenants ヘッダーを追加するように HTTPS プロキシサーバーを設定します。この例に示すように、 AppKeys と TenantIDsのリストを含めます。 X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2

Amazon Chime SDK では X-Amzn-Chime-Tenants ヘッダーに対するインバウンド WebRTC メディアセッションの接続を確認し、次のロジックを適用します。

  • ヘッダーにセッションの AppKey:tenantId が含まれている場合は、接続を承認します。

  • ヘッダーにセッションの AppKey が含まれているものの、tenantId に一致しない場合は、403 エラーで接続を拒否します。

  • ヘッダーにセッションの AppKey が含まれていない場合は、接続を承認します。

  • ヘッダーにセッションの AppKey が含まれていても、そのセッションに 1 つ以上の許可された tenantId がない場合は、403 エラーで接続を拒否します。これは開発者のバグである可能性があります。

  • ヘッダーが存在しない場合、接続を受け入れます。ユーザーが組織のネットワークの外部からアプリケーションにアクセスできる場合は、すべてのセッションにもアクセスできます。

HTTPS ヘッダーの例

次の例は、HTTPS ヘッダーで AppKeys および TenantIDs を使用する方法の一部を示しています。

1 つのアプリと 1 つのテナント

X-Amzn-Chime-App-Keys: AppKey

X-Amzn-Chime-Tenants: AppKey:orgId

ユーザーは、指定されたアプリで組織の WebRTC メディアセッションにのみアクセスできます。その他のアプリはすべてブロックされます。

1 つのアプリと 2 つのテナント

X-Amzn-Chime-App-Keys: AppKey

X-Amzn-Chime-Tenants: AppKey:engineeringId,salesId

ユーザーは、指定されたアプリでエンジニアリングとセールスのメディアセッションにのみアクセスできます。その他のアプリはすべてブロックされます。

2 つのアプリ、1 つは単一のテナントに限定

X-Amzn-Chime-App-Keys: AppKey1,AppKey2

X-Amzn-Chime-Tenants: AppKey1:orgId

ユーザーは、アプリ 1 では組織のメディアセッションにのみアクセスでき、アプリ 2 ではどのセッションにもアクセスできます。その他のアプリはすべてブロックされます。