IAM を使用したアクセス制御

このページでは、Cloud Asset API で使用可能なアクセス制御オプションについて説明します。

概要

Cloud Asset Inventory は、アクセス制御に Identity and Access Management(IAM)を使用します。

Cloud Asset API では、プロジェクト レベルまたは組織レベルでアクセス制御を構成できます。 たとえば、プロジェクト内のすべての Cloud Asset Inventory リソースへのアクセス権をデベロッパーのグループに付与することができます。

IAM とその機能の詳細については、IAM のドキュメントをご覧ください。特に、プロジェクト、フォルダ、組織へのアクセス権の管理セクションをご覧ください。

権限とロール

すべての Cloud Asset Inventory API メソッドで、呼び出し元が必要な権限を持っている必要があります。このセクションでは、IAM でサポートされる Cloud Asset API の権限とロールを簡単に説明します。

必要な権限

次の表に、呼び出し元が Cloud Asset API の各 API メソッドを呼び出すため、または API を使用する Google Cloud ツール(Google Cloud コンソールや Google Cloud CLI など)を使用してタスクを実行するために必要な権限を示します。

権限 API メソッド
cloudasset.assets.searchAllResources
  • リソース オーナーの拡充を検索する場合: cloudasset.assets.searchEnrichmentResourceOwners
*.searchAllResources
cloudasset.assets.searchAllIamPolicies *.searchAllIamPolicies
cloudasset.assets.analyzeIamPolicy
cloudasset.assets.searchAllResources
cloudasset.assets.searchAllIamPolicies
*.analyzeIamPolicy
*.analyzeIamPolicyLongrunning
*.batchGetEffectiveIamPolicies
cloudasset.assets.analyzeOrgPolicy
cloudasset.assets.searchAllResources
*.analyzeOrgPolicies
*.analyzeOrgPolicyGovernedContainers
cloudasset.assets.analyzeOrgPolicy
cloudasset.assets.searchAllResources
cloudasset.assets.searchAllIamPolicies
*.analyzeOrgPolicyGovernedAssets
cloudasset.feeds.get *.getFeed
cloudasset.feeds.list *.listFeeds
cloudasset.feeds.delete *.deleteFeed
content_type に基づく cloudasset.feeds.create
cloudasset.assets.exportResource、または
cloudasset.assets.exportIamPolicy
*.createFeed
content_type に基づく cloudasset.feeds.update
cloudasset.assets.exportResource、または
cloudasset.assets.exportIamPolicy
*.updateFeed
content_type に基づく cloudasset.assets.exportResource
cloudasset.assets.exportIamPolicy
cloudasset.assets.exportOrgPolicy
cloudasset.assets.exportOSInventories、または
cloudasset.assets.exportAccessPolicy
*.batchGetAssetsHistory
*.exportAssets
*.operations.get
content_type に基づく cloudasset.assets.listResource
cloudasset.assets.listIamPolicy
cloudasset.assets.listOrgPolicy
cloudasset.assets.listAccessPolicy、または
cloudasset.assets.listOSInventories
*.listAssets
cloudasset.assets.analyzeMove *.analyzeMove
cloudasset.savedqueries.create *.createSavedQuery
cloudasset.savedqueries.get *.getSavedQuery
cloudasset.savedqueries.list *.listSavedQueries
cloudasset.savedqueries.update *.updateSavedQuery
cloudasset.savedqueries.delete *.deleteSavedQuery

なお、*.exportAssets API を使用してコンテンツ タイプが RESOURCE または未指定の指定済みアセットタイプのリソース メタデータをエクスポートする場合、呼び出し元に cloudasset.assets.exportResource 権限が付与されていなければ、呼び出し元がリクエストで指定されている各アセットタイプに対し適切なリソースタイプごとの権限を持つことも求められます。

ロール

Cloud Asset Inventory には、次の 2 つの IAM ロールがあります。

  • Cloud Asset オーナー(roles/cloudasset.owner)。Cloud Asset メタデータに対する完全アクセス権を付与します。すべての cloudasset.* 権限と recommender.cloudAssetInsights.* 権限が付与されます。

  • Cloud Asset 閲覧者(roles/cloudasset.viewer)。Cloud Asset メタデータに対する読み取り専用権限を付与します。すべての cloudasset.assets.* 権限(cloudasset.feeds.* 権限と cloudasset.savedqueries.* 権限は付与されません)、recommender.cloudAssetInsights.get 権限、recommender.cloudAssetInsights.list 権限が付与されます。

必要な権限を含む適切なロールを選択してください。一般に、Cloud Asset オーナーのロールを付与されたユーザーのみが Cloud Asset API の呼び出しに必要な権限を付与し、すべてのメソッドを全面使用できます。

基本ロールには、以下の権限が含まれます。

  • オーナーのロール(roles/owner)では、すべての cloudasset.* 権限が付与されます。

  • 編集者のロール(roles/editor)では、cloudasset.assets.search* 権限と cloudasset.assets.analyzeIamPolicy 権限が付与されます。

  • 閲覧者のロール(roles/viewer)では、cloudasset.assets.search* 権限と cloudasset.assets.analyzeIamPolicy 権限が付与されます。

基本ロールには他の Google Cloud サービスに対する多くの権限が含まれ、意図したアクセス権の範囲が本来よりも大きくなる可能性があるため、基本ロールではなく、いずれかの Cloud Asset ロールを付与することをおすすめします。

組織、フォルダ、プロジェクト レベルでユーザーにロールを付与できます。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

VPC Service Controls

VPC Service Controls を Cloud Asset Inventory とともに使用することで、アセットのセキュリティを強化できます。VPC Service Controls の詳細については、VPC Service Controls の概要をご覧ください。

VPC Service Controls で Cloud Asset Inventory を使用する際の制限事項については、サポートされているプロダクトと制限事項をご覧ください。