Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Firebase MLiOSアプリのクラウドクレデンシャルを保護します

iOSアプリがFirebaseMLのクラウドAPIのいずれかを使用している場合は、アプリを本番環境で起動する前に、不正なAPIアクセスを防ぐためにいくつかの追加手順を実行する必要があります。

1.既存のAPIキーの範囲を縮小します

まず、Cloud VisionAPIへのアクセスを禁止するように既存のAPIキーを構成します。

  1. 開き、資格情報のGoogle Cloudコンソールのページを。プロンプトが表示されたら、プロジェクトを選択します。

  2. リスト内の既存のAPIキーごとに、編集ビューを開きます。

  3. APIの制限のセクションでは、すべてあなたがアクセス権を持っているAPIキーを先にAPIのリストに追加し、キーを制限選択します。クラウドビジョンのAPIが含まれていないようにしてください。

    あなたはAPIキーのAPIの制限を設定する場合は、明示的にキーがアクセス先のAPIを宣言しています。デフォルトでは、APIの制限のセクションでは、DOは、選択キーを制限しいない場合、APIキーはプロジェクトのために有効になっている任意のAPIにアクセスするために使用することができます。

さて、既存のAPIキーがクラウドMLサービスへのアクセスを許可しませんが、各キーを使用すると、そのAPIの制限リストに追加する任意のAPIのために仕事していきます。

あなたが将来的に任意の追加のAPIを有効にした場合、あなたが該当するAPIキーのためのAPIの制限リストに追加する必要があることに注意してください。

2. FirebaseMLで使用する新しいAPIキーを作成します

次に、Cloud VisionAPIへの呼び出しのみを許可するFirebaseMLの新しいAPIキーを作成します。

  1. 戻る資格情報のページ。 Firebaseプロジェクトがまだ選択されていることを確認してください。

  2. 資格情報> APIキーの作成]クリックします。その後、キーを制限する]をクリックし、新しいAPIキーをメモしておいてください。

  3. APIの制限]セクションで、キーを制限選択し、リストにのみクラウドビジョンのAPIを追加します。

このAPIキーは、Cloud Vision APIへのアクセスのみを許可し、FirebaseMLがクラウドベースのモデルにアクセスするために使用できます。

侵害されたキーの影響を軽減するには、Cloud VisionAPIのユーザーごとの割り当てをデフォルト設定から減らす必要があります。そうするために:

  1. 開きクラウドビジョンAPIクォータGoogleクラウドコンソールのページを。プロンプトが表示されたら、プロジェクトを選択します。

  2. 要求のセクションでは、あなたのアプリケーションのための合理的なものに、ユーザークォータあたり1分あたりの要求を設定します。たとえば、アプリでドキュメントの画像をアップロードしてテキストを元に戻す必要がある場合、ユーザーが数秒に1回以上アップロードする可能性は低いため、30〜40の割り当てで安全です。

    このコンテキストでは、「ユーザーごとのリクエスト」は単一のIPアドレスからのリクエストを指すことに注意してください。複数のユーザーがNATの背後から同時にアプリを使用することが予想される場合は、これを考慮する必要があります。

4. Firebase MLAPIキーを使用してCloudAPIを呼び出す

最後に、アプリで、新しいAPIキーを使用するようにFirebaseMLを設定します。

Firebase MLAPIキーはCloudVision APIへの認証されていないアクセスを許可するため、不正使用や請求先アカウントへの請求を防ぐために、キーの機密を保持することが重要です。そのためには、アプリのバイナリにAPIキーを含めないでください。代わりに、アプリの実行時に、正常なユーザーがサインインしていることを確認してから、サーバーからAPIキーを取得します。

これらの慣行が守られている場合でも、APIキーが危険にさらされる可能性があります。上記のようにAPIのユーザーごとの割り当てを減らしたり、キーローテーションポリシーを実装したり、さまざまなユーザーグループにさまざまなキーを発行したりするなど、侵害されたキーの影響を軽減するための手順を実行する必要があります。

アプリがAPIキーを安全に取得した後、Firebase ML Cloud APIを呼び出す場合は、次のキーを指定します。

迅速

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objective-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

また、あなたはで一般的なアドバイスに従うべきAPIキーを保護します

次のステップ

参照してください打ち上げチェックリスト他のFirebaseの機能を使用するときに起動するアプリケーションを準備については、を。