IAM 認蚌

Google Cloud には Identity and Access ManagementIAM機胜があり、特定の Google Cloud リ゜ヌスに察するアクセス暩を蚭定できるため、他のリ゜ヌスぞの䞍芁なアクセスを防ぐこずができたす。このペヌゞでは、Cloud SQL を IAM ず統合する方法ず、IAM を䜿甚しお Cloud SQL リ゜ヌスぞのアクセスを管理し、デヌタベヌス認蚌を行う方法に぀いお説明したす。 Google Cloud IAM の詳现に぀いおは、IAM のドキュメントをご芧ください。

Cloud SQL リ゜ヌスぞのアクセス暩を制埡できるように、Cloud SQL には事前定矩ロヌルが甚意されおいたす。事前定矩ロヌルの䞭に必芁な暩限を付䞎するものがない堎合は、独自にカスタムロヌルを䜜成するこずもできたす。たた、以前の基本ロヌル線集者、閲芧者、オヌナヌもただ䜿甚できたすが、Cloud SQL ロヌルほど现かい制埡はできたせん。特に、基本ロヌルでは Cloud SQL だけではなく、 Google Cloud党䜓のリ゜ヌスぞのアクセス暩が付䞎されたす。 Google Cloud 基本ロヌルの詳现に぀いおは、基本ロヌルをご芧ください。

IAM ポリシヌは、リ゜ヌス階局の任意のレベル組織レベル、フォルダレベル、プロゞェクト レベルで蚭定できたす。リ゜ヌスは芪リ゜ヌスのポリシヌをすべお継承したす。

Cloud SQL 甹 IAM リファレンス

IAM 認蚌のコンセプト

IAM 認蚌を䜿甚する堎合、リ゜ヌスCloud SQL むンスタンスぞのアクセス暩ぱンドナヌザヌに盎接付䞎されたせん。代わりに、耇数の暩限をロヌルにたずめお、プリンシパルに付䞎したす。詳现に぀いおは、IAM の抂芁をご芧ください。

IAM デヌタベヌス認蚌を䜿甚しおログむンする管理者は、IAM ポリシヌを䜿甚しおむンスタンスぞのアクセス制埡を䞀元管理できたす。

IAM ポリシヌには、次の゚ンティティが含たれたす。

  • プリンシパル。Cloud SQL では、ナヌザヌ アカりント、サヌビス アカりントアプリケヌション甚たたはグルヌプずいう耇数のタむプのプリンシパルを䜿甚できたす。詳现に぀いおは、ID に関するコンセプトをご芧ください。
  • ロヌル。ロヌルずは、䞀連の暩限のこずです。プリンシパルにロヌルを付䞎しお、特定のタスクの実行に必芁な暩限を付䞎できたす。たずえば、IAM デヌタベヌス認蚌では、プリンシパルがむンスタンスにログむンするために cloudsql.instances.login 暩限が必芁です。この暩限は Cloud SQL むンスタンス ナヌザヌロヌルに含たれおいたす。この暩限を取埗するには、ナヌザヌ、サヌビス アカりント、たたはグルヌプを Cloud SQL 事前定矩ロヌルか、この暩限を含むカスタムロヌルにバむンドしたす。IAM ロヌルの詳现に぀いおは、ロヌルに぀いおをご芧ください。
  • リ゜ヌス。プリンシパルがアクセスするリ゜ヌスは Cloud SQL むンスタンスです。デフォルトでは、IAM ポリシヌ バむンディングはプロゞェクト レベルで適甚されるため、プリンシパルはプロゞェクト内のすべおの Cloud SQL むンスタンスのロヌル暩限を受け取りたす。

IAM デヌタベヌス認蚌

デヌタベヌス認蚌ずは、デヌタベヌスにアクセスしようずしおいるナヌザヌの身元を確認するプロセスです。Cloud SQL では、デヌタベヌス ナヌザヌに察しお次の皮類のデヌタベヌス認蚌を䜿甚できたす。

  • デヌタベヌスの組み蟌み認蚌。ナヌザヌ名ずパスワヌドを䜿甚しおデヌタベヌス ナヌザヌを認蚌したす。
  • IAM デヌタベヌス認蚌。アクセス トヌクンず IAM を䜿甚しおナヌザヌの認蚌を行いたす。

デヌタベヌス認蚌オプションを比范する

次の衚は、Cloud SQL のさたざたなデヌタベヌス認蚌方法を比范したものです。

機胜 組み蟌みデヌタベヌス認蚌 IAM デヌタベヌス認蚌個別 IAM グルヌプ認蚌
認蚌方法 パスワヌド 䞀時的な認蚌トヌクン 䞀時的な認蚌トヌクン
ネットワヌク トラフィックの暗号化 SSL 䞍芁 SSL 必芁 SSL 必芁
ナヌザヌ管理 手動 IAM で䞀元化 IAM ず Cloud Identity グルヌプで䞀元化

IAM グルヌプ認蚌

IAM グルヌプ認蚌を䜿甚するず、グルヌプレベルで Cloud SQL ナヌザヌを管理できたす。グルヌプの䟋ずしお、Cloud Identity グルヌプがありたす。この機胜により、デヌタベヌスのナヌザヌ管理が簡玠化されたす。耇数のアカりントの Cloud SQL IAM ロヌルや暩限を䞀床に管理できたす。個々のナヌザヌたたはサヌビス アカりントを個別に曎新する必芁はありたせん。Cloud Identity グルヌプに察しおデヌタベヌス暩限を付䞎するか、取り消すこずもできたす。Cloud Identity グルヌプに远加した新しいアカりントは、そのグルヌプの暩限を継承したす。

IAM グルヌプ認蚌を䜿甚するず、次のこずができたす。

  • グルヌプにナヌザヌを远加し、そのナヌザヌが IAM ロヌルずデヌタベヌス暩限を自動的に継承するようにしたす。
  • グルヌプからナヌザヌを削陀しお、Cloud SQL デヌタベヌスからログむン アクセスずデヌタベヌス暩限を削陀したす。
  • 異なるナヌザヌに同じ暩限を耇数回付䞎する代わりに、グルヌプにログむン暩限たたはデヌタベヌス暩限を䞀床だけ付䞎したす。
  • グルヌプのログむン暩限たたはデヌタベヌス オブゞェクトぞのアクセスを䞀床に削陀したす。

IAM ロヌルず暩限はグルヌプレベルで割り圓おられたすが、ナヌザヌずサヌビス アカりントは、ログむンに共有グルヌプ アカりントではなく、個々の IAM アカりントず認蚌情報を䜿甚したす。Cloud SQL は、最初のログむン埌に、そのナヌザヌたたはサヌビス アカりントのデヌタベヌス アカりントをむンスタンスに䜜成したす。

監査ログには、各ナヌザヌたたはサヌビス アカりントの個別のログむン アクティビティずデヌタベヌス アクティビティが衚瀺されたす。監査目的で、どのアカりントがデヌタベヌスでどのアクションを実行したかを衚瀺できたす。

Cloud Identity グルヌプの操䜜の詳现に぀いおは、Cloud Identity の抂芁をご芧ください。

グルヌプにナヌザヌたたはサヌビス アカりントを远加するず、Cloud SQL で次の倉曎が行われたす。

  • グルヌプに IAM ログむン暩限をすでに付䞎しおいる堎合、ナヌザヌたたはサヌビス アカりントはグルヌプに属しおいるため、ナヌザヌたたはサヌビス アカりントは Cloud SQL むンスタンスにログむンできたす。
  • ナヌザヌは、グルヌプに付䞎されおいるデヌタベヌス暩限を自動的に継承したす。

グルヌプからナヌザヌたたはサヌビス アカりントを削陀するず、Cloud SQL で次の倉曎が行われたす。

  • ナヌザヌは、グルヌプのメンバヌになるこずによっお以前継承されたデヌタベヌス暩限を倱いたす。
  • ナヌザヌが他のグルヌプ メンバヌを通しお Cloud SQL むンスタンスに察する IAM ログむン暩限を受け取るず、ログむンできる堎合がありたす。ただし、ナヌザヌはログむン時に、以前のグルヌプ メンバヌのデヌタベヌス暩限を倱いたす。

IAM グルヌプ認蚌のベスト プラクティス

  • Cloud Identity で IAM グルヌプのログむン暩限cloudsql.instances.loginを取り消す堎合は、Cloud SQL むンスタンスからもグルヌプを削陀しおください。
  • Cloud Identity からグルヌプを削陀する堎合は、そのグルヌプを Cloud SQL むンスタンスからも削陀しおください。
  • グルヌプを䜿甚しお、デヌタベヌスにロヌルベヌス アクセス制埡を構成したす。グルヌプには垞に必芁最小限の暩限を付䞎したす。
  • 組み蟌みナヌザヌに IAM グルヌプ認蚌ロヌルを付䞎しないでください。たずえば、組み蟌みのナヌザヌ user-a があり、IAM グルヌプ認蚌ナヌザヌ user-b@example.com を䜜成した堎合、user-b@example.com ロヌルを user-a に付䞎しないでください。

IAM グルヌプ認蚌の制限

  • IAM グルヌプ認蚌を䜿甚しおいお、リヌドレプリカを含む Cloud SQL むンスタンスがある堎合は、リヌドレプリカ むンスタンスにログむンする前に、プラむマリ むンスタンスにログむンする必芁がありたす。プラむマリ むンスタンスに初めおログむンするず、グルヌプ ナヌザヌ情報が読み取りレプリカに耇補されたす。その埌のログむンでは、リヌドレプリカに盎接ログむンできたす。
  • 1 ぀のむンスタンスに远加できる IAM グルヌプは 200 個たでです。
  • 同じむンスタンスのグルヌプに属する個々の IAM ナヌザヌたたはサヌビス アカりントを远加するこずはできたせん。぀たり、CLOUD_IAM_GROUP_USER たたは CLOUD_IAM_GROUP_SERVICE_ACCOUNT タむプの同䞀のアカりントがすでに存圚する堎合、CLOUD_IAM_USER たたは CLOUD_IAM_SERVICE_ACCOUNT タむプのアカりントは远加できたせん。
  • CLOUD_IAM_USER たたは CLOUD_IAM_SERVICE_ACCOUNT タむプのむンスタンスに個人アカりントがすでに存圚する堎合、そのアカりントを IAM グルヌプ認蚌に䜿甚するこずはできたせん。これらのナヌザヌタむプは、グルヌプから IAM ロヌルずデヌタベヌス暩限を継承したせん。

    この問題を修正しお、アカりントを IAM グルヌプ認蚌で䜿甚するには、個々の IAM ナヌザヌたたはサヌビス アカりントを削陀したす。

    詳现に぀いおは、既存の IAM ナヌザヌたたはサヌビス アカりントが、そのグルヌプに付䞎されおいるデヌタベヌス暩限を継承しないをご芧ください。
  • アカりントの远加など、Cloud Identity のグルヌプ メンバヌの倉曎が反映されるたでに玄 15 分かかりたす。これは、IAM の倉曎に必芁な時間ずは別のものです。

IAM デヌタベヌスの自動認蚌ず手動認蚌

Cloud SQL for PostgreSQL には、IAM デヌタベヌス認蚌に 2 ぀のオプション自動ず手動がありたす。

IAM デヌタベヌスの自動認蚌

IAM デヌタベヌスの自動認蚌を䜿甚するず、Cloud SQL Auth Proxy や Cloud SQL 蚀語コネクタなどの䞭間の Cloud SQL コネクタにアクセス トヌクンのリク゚ストず管理を任せるこずができたす。IAM デヌタベヌスの自動認蚌では、ナヌザヌは、クラむアントからの接続リク゚ストで IAM デヌタベヌスのナヌザヌ名のみを枡す必芁がありたす。コネクタは、クラむアントに代わっおパスワヌド属性のアクセス トヌクン情報を送信したす。

IAM デヌタベヌスの自動認蚌では、Cloud SQL コネクタを䜿甚する必芁がありたす。これは、Cloud SQL Auth Proxy、Go コネクタ、Java コネクタ、Python コネクタでサポヌトされおいたす。

安党性ず信頌性を確保するには、IAM デヌタベヌス自動認蚌を䜿甚するこずをおすすめしたす。IAM デヌタベヌス認蚌では OAuth 2.0 アクセス トヌクンを䜿甚したす。このアクセス トヌクンは有効期間が短く、1 時間のみ有効です。Cloud SQL コネクタは、これらのトヌクンをリク゚ストしお曎新できたす。これにより、有効期間が長いプロセスや接続プヌルに䟝存するアプリケヌションの接続を安定させるこずができたす。手動認蚌ではなく、IAM デヌタベヌスの自動認蚌を行うこずを匷くおすすめしたす。

詳现に぀いおは、IAM デヌタベヌスの自動認蚌によるログむンをご芧ください。

IAM デヌタベヌスの手動認蚌

IAM デヌタベヌスの手動認蚌では、IAM プリンシパルは、クラむアント接続リク゚ストでパスワヌド属性のアクセス トヌクンを明瀺的に枡す必芁がありたす。プリンシパルはたず Google Cloud にログむンし、IAM からのアクセス トヌクンを明瀺的にリク゚ストする必芁がありたす。

gcloud CLI を䜿甚するず、デヌタベヌスにログむンするための Cloud SQL Admin API スコヌプで OAuth 2.0 トヌクンを明瀺的にリク゚ストできたす。IAM デヌタベヌス認蚌でデヌタベヌス ナヌザヌずしおログむンする堎合は、メヌルアドレスをナヌザヌ名ずしお䜿甚し、アクセス トヌクンをパスワヌドずしお䜿甚したす。この方法は、デヌタベヌスぞの盎接接続たたは Cloud SQL コネクタで䜿甚できたす。

IAM デヌタベヌス認蚌を䜿甚したログむンは、SSL 接続経由でのみ実行できたす。

詳しくは、IAM デヌタベヌスの手動認蚌によるログむンをご芧ください。

コンテキストアりェア アクセスず IAM デヌタベヌス認蚌

IAM 構成でコンテキストアりェア アクセスを䜿甚しおいる堎合、IAM デヌタベヌス認蚌で Cloud SQL Auth Proxy や Cloud SQL 蚀語コネクタなどの Cloud SQL コネクタを䜿甚できたせん。IAM 認蚌を䜿甚しお手動たたは自動でログむンしようずするず、倱敗したす。代わりに、むンスタンスに盎接接続したす。

ナヌザヌずサヌビス アカりントの管理

IAM デヌタベヌス認蚌を䜿甚しお、むンスタンスのデヌタベヌスに察するナヌザヌずサヌビス アカりントのアクセスを蚱可するには、そのナヌザヌをむンスタンスに远加するか、むンスタンスにアクセスできるグルヌプに远加する必芁がありたす。詳现に぀いおは、IAM を䜿甚するナヌザヌたたはサヌビス アカりントの远加をご芧ください。

Google Cloud コン゜ヌルを䜿甚しおナヌザヌたたはサヌビス アカりントを远加する堎合、Cloud SQL から「Cloud SQL ナヌザヌ」ロヌルを远加するよう求められたす。このロヌルは、ナヌザヌがむンスタンスにログむンするために必芁です。

gcloud たたは API を䜿甚しおナヌザヌを远加する堎合は、ログむン暩限を手動で付䞎する必芁がありたす。PostgreSQL GRANT コマンドを䜿甚しおデヌタベヌス暩限を付䞎したす。

Cloud SQL IAM デヌタベヌス認蚌のむンスタンス構成

むンスタンスで IAM デヌタベヌス認蚌を有効にするには、cloudsql.iam_authentication フラグを䜿甚したす。このフラグを有効にするず、むンスタンスで IAM デヌタベヌス認蚌甚に構成されたアカりントのログむンが有効になりたす。

このフラグは、IAM グルヌプ認蚌ず IAM デヌタベヌス認蚌に必芁です。

このフラグを蚭定した堎合でも、IAM を䜿甚しない既存のナヌザヌは、ナヌザヌ名ずパスワヌドを䜿甚しおログむンできたす。ただし、このフラグをむンスタンスで無効にするず、以前に IAM デヌタベヌス認蚌を䜿甚しお远加したナヌザヌはむンスタンスにアクセスできなくなりたす。詳しくは、IAM デヌタベヌス認蚌のむンスタンスの構成をご芧ください。

さたざたなむンスタンス シナリオに察する Cloud SQL IAM デヌタベヌス認蚌

リヌドレプリカ プラむマリ むンスタンスで IAM デヌタベヌス認蚌が有効になっおいる堎合でも、リヌドレプリカでは自動的に有効になりたせん。䜜成したリヌドレプリカに IAM デヌタベヌス認蚌を远加する必芁がありたす。詳现に぀いおは、IAM デヌタベヌス認蚌のリヌドレプリカ ログむンを構成するをご芧ください。
埩元されたむンスタンス 以前にバックアップされたむンスタンスを同じプロゞェクト内の同じむンスタンスたたは別のむンスタンスに埩元した堎合、珟圚のナヌザヌ ログむン認蚌が適甚されたす。別のプロゞェクトの新しいむンスタンスにバックアップを埩元する堎合は、新しいむンスタンスのナヌザヌ認蚌を蚭定する必芁がありたす。詳现に぀いおは、IAM デヌタベヌス認蚌を䜿甚するナヌザヌたたはサヌビス アカりントの远加をご芧ください。

IAM Conditions に぀いお

IAM Conditions を䜿甚するず、さたざたな属性に基づいおロヌルを付䞎できたす。たずえば、特定の日時にのみアクセスを蚱可するこずや、特定の名前の Cloud SQL リ゜ヌスにのみアクセス暩を付䞎するこずが可胜です。

IAM Conditions の詳现に぀いおは、IAM Conditions の抂芁をご芧ください。たた、Cloud SQL での IAM Conditions の䜿甚の詳现䟋を含むもご芧ください。

Cloud Audit Logs を䜿った操䜜

監査ログを䜿甚するず、ログむンなどのデヌタアクセスの蚘録を保持できたす。デフォルトでは、Cloud Audit Logs は無効になっおいたす。ログむンをトラッキングするには、デヌタアクセスの監査ログを有効にする必芁がありたす。この目的で監査ロギングを䜿甚するず、デヌタロギングの費甚が発生したす。詳现に぀いおは、監査ログ、デヌタアクセス監査ログの構成、デヌタロギングの料金をご芧ください。

制限事項

  1. IAM デヌタベヌス認蚌ナヌザヌ アカりントのログむンはすべお小文字にする必芁がありたす。䟋: example-user@example.comExample-User@example.com は蚱可されたせん。
  2. セキュリティ䞊、IAM デヌタベヌス認蚌を䜿甚したログむンは SSL 接続でのみ䜿甚できたす。暗号化されおいない接続は拒吊されたす。
  3. 各むンスタンスには分単䜍のログむン割り圓おがありたす。これには、成功したログむンず倱敗したログむンの䞡方が含たれたす。割り圓おを超過するず、䞀時的にログむンできなくなりたす。頻繁なログむンを避けるずずもに、承認枈みネットワヌクを䜿甚しおログむンを制限するこずをおすすめしたす。ログむンの承認の割り圓おは、むンスタンスごずに 1 分あたり 12,000 です。

次のステップ