通知

Play Console のヘルプ ページからサポートチームへのお問い合わせができるようになりました。Play Console にアクセスできない場合には、アカウント管理者にアクセス権の付与を依頼してください。

Play アプリ署名を使用する

Play アプリ署名を使用すると、Google が自社の鍵の保管に使用しているものと同じ安全なインフラストラクチャでお客様のアプリの署名鍵を管理、保護することを Google に委託できます。これらの鍵は、Google の鍵管理サービス(KMS)で保護されます。業界トップクラスのこのインフラストラクチャについて詳しくは、Google Cloud Security に関するホワイトペーパーをご覧ください。
 

Play アプリ署名を使用するメリット: Play アプリ署名に登録すると、鍵を恒久的に使用できなくなったり、不正使用されたりすることを未然に防止できるほか、Android App Bundle(.aab)向けの Google Play の機能強化も利用できます。App Bundle から生成され最適化された配布用 APK の署名を Google に任せることで、Gemini モデルを使用した自動保護文字列の自動翻訳などの便利なサービスを利用できるようになります。ゲームでは、Play Games SidekickPlay as you download有料タイトルの無料試用などの追加の自動サービスを利用できるようになります。

Play アプリ署名を設定するには、アカウント所有者でなければなりません。

基本コンセプト

Play アプリ署名を使用する場合は、2 つの異なる鍵を扱います。この相違点と技術的な形式を理解することは、サードパーティ製 API での認証問題を回避するうえで非常に重要です。

鍵の種類 保有者 詳細な技術情報および目的

アップロード鍵

デベロッパー(安全に保管してください!)

  • 形式: Java Keystore(.jks または .keystore)で保存されます。
  • 要件: 2,048 ビット以上の RSA 鍵である必要があります。
  • 目的: この鍵は、App Bundle を Google Play Console にアップロードする前の署名に使用します。Google はこの鍵を使用して本人確認を行います。この鍵の不正使用や紛失が発生した場合は、Google がリセットできます。
アプリ署名鍵

Google Play

  • 形式: 公開証明書(.der または .pem)に関連付けられます。
  • 要件: Google が生成する鍵は RSA 4,096 ビットです。カスタム鍵は RSA 2,048 ビット以上である必要があります。
  • 目的: Google はこの鍵を使用して、ユーザーのデバイスに配信される最終的な APK に署名します。この鍵は Google に生成を委託することも、独自の鍵を提供することもできます。この鍵を(Play アプリ署名を使用せずに)ご自身で管理する場合は、紛失してもリセットできません。
量子対応 Google Play
  • 形式: 公開証明書(.der または .pem)に関連付けられた 2 つの鍵。
  • 要件: 量子対応のハイブリッド署名は、従来型の RSA 4,096 ビット鍵とポスト量子の ML-DSA-65 鍵を組み合わせたものです。Google が生成するのは、ハイブリッド署名用の新たな従来型の鍵であり、これは Android 17 より前のデバイスで使用する従来型の鍵とは異なります。そのため、アプリは 3 つの異なる鍵を使用することになります。
  • 目的: Android 17 以降のデバイスは、APK 署名スキーム v3.2 を使用してアプリを確認し、今後生じる可能性がある量子コンピューティング攻撃から保護します。Android 16 以前のデバイスは、引き続き従来型の署名ブロックを使用してアプリを確認します。

: セキュリティを最大限に高めるため、アップロード鍵とアプリ署名鍵は異なるものを使用する必要があります。

Google がアプリに署名する方法: Google は、アプリ署名鍵を作成し、この鍵で APK に署名する場合、apksigner を使用してアプリのマニフェストに 2 つのスタンプ(com.android.stamp.source と com.android.stamp.type)を追加します。これらのスタンプで、APK は元の署名者に安全に遡ることができます。

Play アプリ署名を設定する

設定プロセスは、新しいアプリを公開するか、既存のアプリを移行するかによって異なります。

新しいアプリの場合

  1. 新しいアプリを作成する: アプリは、Google 生成の鍵による量子対応のハイブリッド署名に自動的に登録されます。また、Android 16 以前のデバイスで認識される署名ブロックで使用される従来型の鍵も別途生成されます。
  2. アップロード鍵を作成する: キーストアを生成して、リリースする App Bundle に署名します。Android Studio で生成するか、コマンドラインから Java Keytool ユーティリティを使用します。
  3. App Bundle をアップロードする: Google Play Console にアクセスし、新しいリリースを準備します。デフォルトでは、App Bundle をアップロードすると、アプリは Google 生成の鍵による量子対応のハイブリッド署名に自動的に登録されます。
  4. アプリ署名鍵を変更する(任意): 独自の鍵を管理できる上級デベロッパーは、オープンテスト トラックまたは製品版トラックでリリースを公開するまで、このデフォルトを変更できます。変更するには、[Google Play による保護] > [Google Play ストアでの配信] > [Play アプリ署名に移動] に移動し、[アプリ署名鍵を変更] をクリックします。次のいずれかの方法を選択します。
  • このデベロッパー アカウントの別のアプリと同じ鍵を使用する
  • アプリ署名鍵のコピーを提供する(手順に沿って操作)

既存のアプリの場合

現在、独自の鍵を管理して APK をアップロードしている場合は、Play アプリ署名にアップグレードすることで App Bundle と Google Play の機能強化を利用できます。

  1. Google Play Console で [Google Play による保護] > [Google Play ストアでの配信] > [Play アプリ署名に移動] に移動します。
  2. 利用規約に同意していない場合は、同意します。
  3. 元の鍵のコピーを転送する: PEPK ツールをダウンロードし、統一された手順ガイドに沿って、リポジトリにある既存のアプリ署名鍵を暗号化してアップロードします。
新しいアップロード鍵を作成する(推奨): Android Studio で、今後アップロード鍵として使用する新しい鍵を生成し、Google Play Console でその証明書を登録します。

API プロバイダに登録する

アプリで API(Google マップ、OAuth、Facebook ログインなど)を使用している場合、これらのサービスはアプリ署名鍵のフィンガープリントを使用してアプリを認証します。

Google は最終的な APK に署名するため、ローカルのアップロード鍵だけではなく、Google が保持するアプリ署名鍵のフィンガープリントを API プロバイダに登録する必要があります

  1. [Google Play による保護] > [Google Play ストアでの配信] > [Play アプリ署名に移動] に移動します。
  2. [アプリ署名鍵] セクションまでスクロールします。
  3. 必要なフィンガープリント(SHA-1 または SHA-256)をコピーします。量子対応のハイブリッド署名を使用しているアプリの場合は、3 つの鍵のフィンガープリントをコピーして、それぞれを API プロバイダに登録する必要があります。3 つの鍵とは、新しいデバイスで使用される新たな従来型の鍵と PQC 鍵、および以前のデバイスで使用される従来型の鍵です。
  4. これらのフィンガープリントを API プロバイダのコンソール(Google Cloud コンソールなど)に貼り付けます。
    ヒント: Android アプリリンクを使用している場合は、これらのフィンガープリントで assetlinks.json ファイルを更新します。

鍵を管理する

アプリ署名鍵をアップグレードする

アプリ署名鍵が不正使用された場合や、暗号強度の高い鍵が必要な場合は、Android 17(API レベル 37)以降でのすべてのインストール向けに年に 1 回、鍵のアップグレードをリクエストできます。

Android バージョンごとの適用の仕組みは次のとおりです。

  • Android 17(API レベル 37)以降: アップグレードされた量子対応のハイブリッド鍵の使用が Android プラットフォームによって強制適用されます。APK 署名スキーム v3.2 をご覧ください。
  • Android 13(API レベル 33)~Android 16(API レベル 36): 最新の従来型の鍵の使用が Android プラットフォームによって強制適用されます。APK 署名スキーム v3.1 をご覧ください。
  • Android 7(API レベル 24)~Android 12(API レベル 32): アップグレードされた鍵が Android プラットフォーム自体によって強制されることはなく、最新の従来型の鍵が引き続き認識されますが、Google Play プロテクトが、最新の従来型の鍵でアプリのアップデートが署名されていることを確認することで、追加の検証を行います(ユーザーが無効にした場合を除きます)。

重要な考慮事項:

  • 共有データ: Android S(API レベル 32)以前では、アップグレードされた鍵はプラットフォームで適用されないため、複数のアプリで同じ鍵を使用してデータを共有する場合、これらの以前の Android バージョンは、カスタム権限の共有などの機能に対して以前の鍵のみを認識します。

アップグレード方法:

  1. [Google Play による保護] > [Google Play ストアでの配信] > [Play アプリ署名に移動] に移動します。
  2. [アプリ署名鍵] セクションで、[鍵をアップグレード] をクリックします。
  3. アップグレード方法を選択します。
    • Google Play で新しいアプリ署名鍵を生成する(推奨)
    • このデベロッパー アカウントの別のアプリと同じアプリ署名鍵を使用する
    • アプリ署名鍵のコピーを提供する(手順に沿って操作)
  4. [保存] をクリックします。
  5. API プロバイダに新しい鍵のフィンガープリントを登録します。量子対応のハイブリッド署名を使用しているアプリの場合は、2 つの新しい鍵(新しい従来型の鍵と新しい PQC 鍵)のフィンガープリントを登録する必要があります。

アップロード鍵のリセットをリクエストする

アップロード鍵を紛失した場合や、不正使用された疑いがある場合でも、アプリを利用できなくなることはありません。

  1. Android Studio で新しいアップロード鍵を作成します。
  2. 証明書を PEM 形式でエクスポートします。
    keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
    (Keytool とキーストア パスについて詳しくは、Android Studio アプリ署名ガイドをご覧ください)。
  3. PEM ファイルが生成されたら、Google Play Console でリセット リクエストを送信します。
  4. [Google Play による保護] > [Google Play ストアの保護] > [Play アプリ署名の管理] に移動します。
  5. [アップロード鍵の証明書] セクションで、[アップロード鍵のリセットをリクエスト] をクリックします。
  6. リセットの理由を入力します。
  7. upload_certificate.pem ファイルをアップロードし、[リクエスト] をクリックします。

ベスト プラクティスとさまざまな配信方法

  • セキュリティ: すべてのユーザーに 2 段階認証プロセスを適用し、Google Play Console へのアクセスを保護します。
  • App Bundle の機能強化: Play アプリ署名に登録すると、App Bundle の機能強化を利用できるようになります。機能強化を適用するには、新しいリリースを作成する際に必要な設定変更を行ってから、新しい App Bundle をアップロードします。
  • Google Play 以外での配信: 他のアプリストアから配信し、すべての場所で同じ署名鍵を使用したい場合は、次の 2 つの方法があります。[1] Google にアプリ署名鍵の生成を委託し、Google Play Console または Play Developer API から署名済みのユニバーサル APK をダウンロードして他の場所で配信するか(Google Play Console で [テストとリリース] > [最新のリリースとバンドル] に移動し、App Bundle を選択して [ダウンロード] タブをクリックします)、[2] すべてのアプリストアで使用するアプリ署名鍵を生成し、Play アプリ署名を設定するときにそのコピーを Google に転送します。詳しくは、アプリのアップデートの仕組みと、ストアをまたいだアップデートを有効または無効にする方法をご覧ください。
  • テスト: 内部アプリ共有を使用して、Google Play がユーザーに配信するもの自体をテストします。または、App Bundle エクスプローラからデバイス別の APK をダウンロードし、adb install-multiple *.apk を使用してローカルにインストールします。
  • APK 署名スキーム v4: Play アプリ署名は、Android 11 以降のデバイスで最適化された配信をサポートするため、対象のアプリで自動的に v4 署名を使用します。デベロッパー様の方でなんらかの措置を講じていただく必要はありません。量子対応のハイブリッド署名を使用するアプリはすべて除外されます。これは、v4 署名とまだ互換性がないためです。技術上のメリットについて詳しくは、APK 署名スキーム v4 のドキュメントをご覧ください。

自己ホスト型の Google Cloud プロジェクト

非常に具体的なセキュリティ要件(OEM 鍵の使用など)がある場合は、Play Developer API を使用して、自己ホスト型の Google Cloud プロジェクトで Play アプリ署名に登録できます。

これは標準的ではない設定のため、推奨されません。自己ホスト型プロジェクトを使用すると、アプリ署名オペレーションの全責任をデベロッパーが負うことになります。

  • Google Play で障害復旧などの重要な機能を実施できなくなります。
  • Google が既存のリリースの再生成や修正を行うことはできません。リリース関連のエラーを修正するには、新しいリリースをアップロードする必要があります。
  • この設定では、最適化の詳細設定、特定の Google Play の機能強化、量子対応のハイブリッド署名などのセキュリティ機能を利用できない場合があります。
  • 署名鍵を生成するか、Cloud KMS にインポートします。ロケーションが multi-region US に設定されていることを確認し、KMS 鍵のインポートに関する記事に沿って操作します。
  1. 署名鍵を変更するには、enrollApp メソッドを使用します。署名鍵を変更できるのは、アプリをオープンテスト トラックまたは製品版トラックにリリースするまでに限られます。
  2. 公開後に署名鍵をアップグレードするには、rotateAppSigningKey メソッドを使用します。
  3. クライアントまたはサービス アカウントに次の IAM ロールを付与し、Google Play Developer API で認証します。
    1. role/cloudkms.signer
    2. roles/cloudkms.viewer
    3. roles/cloudkms.publicKeyViewer
  4. 暗号化オペレーションを実行できるだけの十分な割り当てがあることを確認します。特に、asymmetric_requests の割り当てを 350 QPS 以上に増やすことをおすすめします。
  5. 署名鍵の使用状況を確認するには、Cloud KMS プロジェクトで監査ログを有効にします。
このページには、AI 技術を使用して翻訳されたコンテンツが含まれている場合があります。AI 翻訳には誤りが含まれている可能性があります。

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
12063134274503591527
true
ヘルプセンターを検索
false
true
true
true
true
true
92637
false
false
false
false
false