こんにちは、メケです。
今回はGoogleが提供する『Google Cloud Platform』の翻訳サービスを利用するための設定手順を紹介します。
- ServiceNowの翻訳機能としてGoogle Cloud Platformを使用したい方
- Google Cloud Platform での翻訳機能を試してみたい方
この記事の内容を行えば、ServiceNow等にて今回行った翻訳サービスを利用することができます。
Google Cloud Platformとは
Google Cloud PlatformとはGoogleによって提供されているクラウドサービスになります。
従量課金制にはなりますが一定量までは無料で使用することができます。
翻訳にはGCPの中の「Cloud Translation」というAPIを利用します。
送信した文字数に基づいて月単位で課金されますが、 1ヶ月あたり50万文字は無料で使えるので検証用には全く問題ないと思います。
※使用量が多くなると料金が発生するのでくれぐれも注意して下さい
Google Cloud Platform設定手順
プロジェクト作成
Google Cloud Platformへの登録ができた後は下の画面のようなものが表示されます。
ヘッダー部分のGoogle Cloud Platform横の赤枠部をクリックします。

右上の「新しいプロジェクト」をクリックします。

新しいプロジェクトを作成するために、プロジェクト名を入力します。

プロジェクト名: ”Translate Project” ※任意の名前でOK
入力後、「作成」ボタンをクリックします。
APIの有効化
左上のナビゲーションメニュー(三本線)より[APIとサービス]▶[ダッシュボード]をクリックします。

「+APIとサービスの有効化」をクリックします。

上部の検索窓にて”Translation”と入力し、検索すると「Cloud Translaion API」が表示されるのでクリックします。

以下の画面で「有効にする」ボタンをクリックします。

サービスアカウントの作成
左上のナビゲーションメニュー(三本線)より
[IAMと管理]▶[サービスアカウント] をクリックします。

[+サービスアカウントを作成]をクリックします。

サービスアカウントの詳細
サービスアカウント名に任意の名前を入力します。

サービスアカウント名 : ”translator” ※任意の名前でOK
入力後、「作成して続行」ボタンをクリックします。
ロールの設定
ロールを設定します。

ロール: 閲覧者 ※ここでは左記の設定とします。
「完了」ボタンをクリックします。
キーの作成
作成したサービスアカウントでキーの作成を行います。
サービスアカウントを選択
メール(アドレス)をクリックして下さい。

新しい鍵を作成
以下のような画面になりますので上部で[キー]をクリックします。
下部に表示される[鍵を追加]▶[新しい鍵を作成]をクリックします。

キーのタイプを選択
秘密鍵のタイプとしてJSONを選択して作成します。

キーのタイプ:JSON
[作成]をクリックします。
秘密鍵の保存
以下のような画面が表示されます。

jsonファイルがダウンロードフォルダなどに作成されたかと思います。
私はこんな感じのファイル名でした。
translate-project-999999-xxxxxxxxx.json
このファイルを任意の場所(C:\work など)にコピーしておきましょう。
テキストエディタにて中身を確認すると、以下のような感じになっています。
{
“type”: “service_account”,
“project_id“: “translate-project-999999”,
“private_key_id“: “xxxxxxxx”,
“private_key“: “—–BEGIN PRIVATE KEY—–(中略)—-END PRIVATE KEY—–\n”,
“client_email“: “translator@third-node-999999.iam.gserviceaccount.com”,
“client_id”: “XXXXXXXXXXXXXXXXXXXXXXXX”,
“auth_uri”: “https://accounts.google.com/o/oauth2/auth”,
“token_uri”: “https://oauth2.googleapis.com/token”,
“auth_provider_x509_cert_url”: “https://www.googleapis.com/oauth2/v1/certs”,
“client_x509_cert_url“: “https://www.googleapis.com/robot/v1/metadata/x509/translator%40third-node-999999.iam.gserviceaccount.com”
}
以下をこの後の設定に使用することになります。
- project_id
- (ServieNow)sn_google_trans.GoogleTranslation の ”google”画面
- private_key
- privatekey.pemの作成
- client_email
- (ServieNow)JWT providerのiss
- client_x509_cert_url
- certificate.pemの作成
各種証明書ファイル作成手順
pemファイルの作成
続いてpemファイルを作成していきます。
pemファイルとは・・・
X.509証明書の拡張子 .pemは、Base64で符号化された証明書です。.pem SSL サーバ証明書(連結SSLサーバ証明書)では複数のサーバ証明書を1ファイルに連結させることができ、SSLサーバ証明書のインストール用によく使われます。
国内第1号digicert正規販売代理店である RMS 様のサイトより引用https://rms.ne.jp/sslserver/basis/pem-ssl-creation/
作成が必要なpemファイルは以下の2つです。
- privatekey.pem ▶秘密鍵用
- certificate.pem ▶証明書用
改行コード変換
JSONファイルに記載されているKey情報には改行文字(\n)が記載されています。
この改行文字は変換する必要があります。任意のサイトやツールで簡単に変換することが可能です。
私は以下のサイトを利用させていただきました。
使い方は以下のようにテキストエリアにKEY情報をコピペし、「UNESCAPE」ボタンをクリックします。

すると、改行を表す”\n”が”CRLF”の改行となりますのでこれをコピペして使います。

privatekey.pemの作成
まずは「privatekey.pem」ファイルの作成から行います。
先程サービスアカウントでキーを作成した時のJSONファイルの中のprivate_keyを使用します。
JSONファイルの改行コードを変換したものを任意のテキストエディタで保存して以下のようなファイルを作成します。

※private_keyがわからない方はコチラに戻って確認してみて下さい。
ファイル名は「privatekey.pem」とします。
certificate.pemの作成
お次は「certificate.pem」ファイルの作成を行います。
今度は、先程サービスアカウントでキーを作成した時のJSONファイルの中のclient_x509_cert_urlに記載のあるURLをブラウザで実行すると以下のようなものが表示されます。

BEGIN CERTIFICATE~END CERTIFICATE が1つの固まりとなっています。
BEGIN CERTIFICATEの前に記載されているキーがprivate_key_idのキーと一致するものを使用します。
ファイル名は「certificate.pem」とします。
※client_x509_cert_url 、private_key_idがわからない方はコチラに戻って確認してみて下さい。
.p12証明書ファイルの作成
これまでに以下のファイルを作成できました。
- privatekey.pem ▶秘密鍵用
- certificate.pem ▶証明書用
任意のフォルダにファイルを格納します。

次は、これらのファイルを使い「.p12証明書ファイル」を作成します。
.p12証明書ファイルとは・・・
https://www.ssl.com/ より引用
PKCS#12またはPFX形式は、サーバー証明書、中間証明書、および秘密鍵を単一の暗号化可能なファイルに格納するためのバイナリ形式です。 PFXファイルは通常、拡張子.pfxおよび.p12で検出されます。 PFXファイルは通常、WindowsおよびmacOSマシンで証明書と秘密鍵をインポートおよびエクスポートするために使用されます。
OpenSSLダウンロード(Windowsのみ事前に必要)
OpenSSL というコマンドを使用していきます。
Linux・Unix・macOSには初めから含まれているようですが、Windowsでは予めインストールしておく必要があります。
以下のサイトからダウンロードできます。
OpenSSLのダウンロードはコチラ
※新しいタブで開かれます。
ご自身の環境に応じて32bit版か64bit版を選択して下さい。”Light”がついているものが軽量のものになります。今回の用途でのみ使用するのであれば”Light”で問題ありません。

環境変数の”path”にOpenSSLのインストールフォルダのパスを追加しておくと便利です。pathが有効になるのはアプリケーションを再起動した際です。コマンドプロンプトを開いている場合は立ち上げ直しましょう。
OpenSSLコマンド実行
OpenSSLをインストールできたら、以下のコマンドを使用して「.p12証明書ファイル」を作成します。
openssl pkcs12 -export -in certificate.pem -inkey privatekey.pem -certfile certificate.pem -out translatekeystrore.p12
青太字:作成するのに使用するファイル(pemファイル)
赤太字:作成されるファイル(.p12証明書ファイル)
コマンド実行後は以下を聞かれます。
Enter Export Password:
エクスポート用のパスワードを入力して下さい。と言われているので任意のパスワードを入力して下さい。このパスワードは後で使いますので覚えておいて下さい。
Verifying - Enter Export Password:
パスワードの確認です。先程入力したパスワードと同じパスワードを入力してください。
ここで設定したパスワードは以下で使用します。
・.jksファイルの作成時の”ソース・キーストアのパスワード”

これで.p12証明書ファイルができました。
.jksファイルの作成
続いてKeytoolというものを使用してJKSファイルというものを作成します。
Keytoolを使用するにはJRE(Java Runtime Environment)が必要となります。インストールしていない方はOracleのダウンロードサイトからダウンロードしてインストールし下さい。
以下のコマンドで「jksファイル」を作成します。
keytool -importkeystore -srckeystore translatekeystrore.p12 -srcstoretype pkcs12 -destkeystore trans.jks -deststoretype JKS
青太字:作成するのに使用するファイル(.p12証明書ファイル)
赤太字:作成されるファイル(.jksファイル)
今回はパスワードを3回求められます。
出力先キーストアのパスワードを入力してください: 新規パスワードを再入力してください:
1,2回目は任意のパスワードを入力します。6文字以上という制約があります。
ここで設定したパスワードは以下で使用します。
・(ServiceNow)X.509 CertificatesのKey store password
ソース・キーストアのパスワードを入力してください:
3回目のパスワードは 「.p12証明書ファイル」を作成した時のパスワードを入力します。

まとめ
今回は以下を行いました。
- Google Cloud Platform での翻訳サービスを使用するための設定
- 各種証明書ファイルの作成
これでGoogleの翻訳サービスを使用する準備はできました。
Google Cloud Platform を学ぶなら以下もチェック【最速で学ぶ - Google Cloud Platform(GCP)入門完全攻略コース】
次回
翻訳サービスプロバイダとしてGoogle社が提供するGoogle Cloud Platformを使用して ServiceNowで翻訳機能を試したい方は、以下の記事を参考にServiceNowとの連携設定をして下さい。

動的翻訳設定におけるまとめ記事は以下になります。

コメント