IAM 認証について

Memorystore には、Identity and Access Management(IAM)と統合した IAM 認証機能があり、ユーザーとサービス アカウントのログイン アクセスを適切に管理できます。

認証とは、クラスタにアクセスを試みるユーザーの身元を確認するプロセスです。Memorystore は Redis AUTH コマンドと IAM アクセス トークンを使用して検証を行います。

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

Redis の IAM 認証

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

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

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

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

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

Redis AUTH コマンド

IAM 認証機能は Redis AUTH コマンドを使用して IAM と統合します。これにより、クライアントはデータへのアクセスを許可する前に Memorystore クラスタによって検証される IAM アクセス トークンを提供できます。

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

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

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

認証の一部として取得する IAM アクセス トークンは、取得から 1 時間後に期限切れになります。新しい Redis 接続を確立するときは、AUTH コマンドを使用して有効なトークンを提示する必要があります。トークンの有効期限が切れている場合、新しい接続を確立するには、新しいアクセス トークンを取得する必要があります。

認証の期間

アクセス トークンを使用して接続を認証すると、その接続は 12 時間有効です。権限を取り消したり、IAM アクセス トークンの有効期限が切れた場合でも、この接続は確立後 12 時間有効であることに留意してください。有効な IAM アクセス トークンを指定して別の Redis AUTH コマンドを送信すると、既存の接続での 12 時間の有効期間がリセットされます。

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

IAM 認証を使用すると、承認済みの IAM プリンシパルのみが Redis クラスタにアクセスできるようにできます。IAM 認証では、転送中の暗号化も有効になっている場合を除き、データ転送中のセキュリティは提供されません。このため、IAM 認証を使用する場合は、転送中の暗号化を有効にすることをおすすめします。