ALTS認証

Application Layer Transport Security (ALTS) を使用した Python での gRPC 認証の概要。

ALTS認証

Application Layer Transport Security (ALTS) を使用した Python での gRPC 認証の概要。

概要

Application Layer Transport Security (ALTS) は、Googleが開発した相互認証およびトランスポート暗号化システムです。Googleのインフラストラクチャ内でのRPC通信の保護に使用されます。ALTSは相互TLSに似ていますが、Googleのプロダクション環境のニーズを満たすように設計および最適化されています。詳細については、ALTSホワイトペーパーをご覧ください。

gRPCにおけるALTSの機能は以下の通りです。

  • ALTSをトランスポートセキュリティプロトコルとしてgRPCサーバーとクライアントを作成します。
  • ALTS接続は、プライバシーと整合性によりエンドツーエンドで保護されます。
  • アプリケーションは、ピアサービスアカウントなどのピア情報にアクセスできます。
  • クライアント認証およびサーバー認証をサポートします。
  • ALTSを有効にするためのコード変更は最小限です。

gRPCユーザーは、数行のコードでALTSをトランスポートセキュリティプロトコルとして使用するようにアプリケーションを設定できます。

ALTSは、アプリケーションがCompute EngineまたはGoogle Kubernetes Engine (GKE)で実行されている場合に完全に機能することに注意してください。

ALTSトランスポートセキュリティプロトコルを使用したgRPCクライアント

gRPCクライアントは、以下のコード抜粋に示すように、ALTS認証情報を使用してサーバーに接続できます。

import grpc

channel_creds = grpc.alts_channel_credentials()
channel = grpc.secure_channel(address, channel_creds)

ALTSトランスポートセキュリティプロトコルを使用したgRPCサーバー

gRPCサーバーは、次に示すように、ALTS認証情報を使用してクライアントが自分に接続できるようにすることができます。

import grpc

server = grpc.server(futures.ThreadPoolExecutor())
server_creds = grpc.alts_server_credentials()
server.add_secure_port(server_address, server_creds)