IAM 認証について

Memorystore には、IAM を活用した Identity and Access Management(IAM)認証機能が用意されており、ユーザーとサービス アカウントのログイン アクセスをより適切に管理できます。IAM ベースの認証は Valkey AUTH と統合されており、静的パスワードに依存せずに認証情報(IAM トークン)をシームレスにローテーションできます。

Memorystore インスタンスの IAM 認証の設定手順については、IAM 認証を管理するをご覧ください。

Valkey の IAM 認証

IAM 認証を使用する場合、Memorystore インスタンスへのアクセス権はエンドユーザーに直接付与されません。代わりに、複数の権限をロールにまとめて、プリンシパルに付与します。詳細については、IAM の概要をご覧ください。

IAM で認証する管理者は、Memorystore IAM 認証を使用して、IAM ポリシーでインスタンスへのアクセス制御を一元管理できます。IAM ポリシーには、次のエンティティが含まれます。

  • プリンシパル。Memorystore では、ユーザー アカウントとサービス アカウント(アプリケーション用)という 2 種類のプリンシパルを使用できます。その他のプリンシパル タイプ(Google グループ、Google Workspace ドメイン、Cloud Identity ドメインなど)は、IAM 認証ではサポートされていません。詳細については、ID に関するコンセプトをご覧ください。

  • ロール。Memorystore IAM 認証では、ユーザーにはインスタンスで認証を行うための memorystore.instances.connect 権限が必要となります。この権限を取得するには、事前定義の Memorystore DB 接続ユーザー(roles/memorystore.dbConnectionUser)ロールにユーザー アカウントまたはサービス アカウントをバインドします。IAM ロールの詳細については、ロールについてをご覧ください。

  • リソース。プリンシパルがアクセスするリソースは Memorystore インスタンスです。デフォルトでは、IAM ポリシー バインディングはプロジェクト レベルで適用されるため、プリンシパルはプロジェクト内のすべての Memorystore インスタンスのロール権限を受け取ります。ただし、IAM ポリシー バインディングは特定のインスタンスに制限できます。手順については、IAM 認証の権限を管理するをご覧ください。

Valkey AUTH コマンド

IAM 認証機能は Valkey AUTH コマンドを使用して IAM と統合されます。これにより、クライアントは IAM アクセス トークンを提示し、Valkey インスタンスでそれが検証されてからデータへのアクセスが許可されます。

すべてのコマンドと同様に、転送中の暗号化が有効になっていない限り、AUTH コマンドは暗号化されずに送信されます。

AUTH コマンドの例については、IAM 認証を使用するインスタンスに接続するをご覧ください。

IAM アクセス トークンの期間

認証の一部として取得する IAM アクセス トークンは、デフォルトでは取得後 1 時間で期限切れになります。別の方法として、アクセス トークンを生成するときにアクセス トークンの有効期限を定義することもできます。新しい Valkey 接続を確立するときに、AUTH コマンドで有効なトークンを提示する必要があります。トークンの有効期限が切れている場合、新しい接続を確立するには新しいアクセス トークンを取得する必要があります。

認証済み接続を終了する

接続を終了するには、Valkey の CLIENT KILL コマンドを使用します。まず、CLIENT LIST を実行して接続を特定し、次に CLIENT KILL を実行して接続を終了します。

IAM 認証を有効にする

IAM 認証を有効にしても、定常状態のパフォーマンスは低下しません。ただし、接続を確立できるレートには影響します。

IAM 認証を有効にすると、1 秒ごとに確立されるクライアント接続のレートが調整されます。これは、Google Cloud の IAM 認証で新しい接続ごとに認証を行う必要があるためです。定常状態では、アプリケーションが接続プールを有効にするため、この影響は無視できます。ただし、クライアント アプリケーションが再起動またはデプロイされると、新しい接続が急増する可能性があります。クライアントを段階的に更新し、指数バックオフを実装すると、このレートの低下を吸収できます。

IAM 認証の使用方法を示すコードサンプルについては、IAM 認証と転送中の暗号化の両方のコードサンプルをご覧ください。

セキュリティとプライバシー

IAM 認証を使用すると、承認済みの IAM プリンシパルのみが Valkey インスタンスにアクセスできるようにできます。転送中の暗号化が有効になっていない限り、TLS 暗号化は提供されません。このため、IAM 認証を使用する場合は、転送中の暗号化を有効にすることをおすすめします。

Compute Engine VM での接続

Compute Engine VM を使用して IAM 認証を使用するインスタンスに接続する場合は、プロジェクトで次のアクセス スコープと API を有効にする必要があります。