IAM 認証について

Memorystore には、Identity and Access Management(IAM)を活用した 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 認証を使用する Valkey インスタンスへの接続をご覧ください。

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

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

認証された接続の終了

接続を終了するには、Valkey の CLIENT KILL コマンドを使用します。終了する接続を見つけるには、まず CLIENT LIST を実行します。これによりクライアント接続が経過時間順に返されます。その後、CLIENT KILL を実行すると目的の接続を終了できます。

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

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

Compute Engine VM との接続

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