IAM 権限を調整する
このトピックでは、Google サービス アカウントに割り当てられた Identity and Access Management(IAM)権限を制限することで、Config Connector が作成および管理できる Google Cloud リソースの種類を制限する方法について説明します。
Config Connector の IAM 権限
IAM は、Config Connector のインストールが特定のリソースに対してアクションを実行することを承認します。Config Connector サービス アカウントに割り当てる権限を制限することで、Config Connector が作成できるリソースの種類をより細かく制御できます。
インストール後に Config Connector の権限を調整する
Config Connector のインストール中に、一時的なロールを選択し、Config Connector を構成するサービス アカウントにロールを割り当てる可能性があります。たとえば、1 つの Google Cloud プロジェクトの編集者のロールなどです。
Config Connector を名前空間モードで構成した場合は、それぞれのロール割り当てを持つ各名前空間に対して複数のサービス アカウントを作成している可能性もあります。
これらのサービス アカウントに対する最初の IAM 権限は、組織固有のセキュリティに関する考慮事項と権限制御プロトコルに合わせて削除または更新できます。
Config Connector の主な利点の 1 つは統合ツールです。つまり、Config Connector を使用して、インストール後に IAM を微調整できます。Config Connector の IAMPolicyMember または IAMPartialPolicy リソースを使用して、IAM 権限を構成できます。ただし、プロジェクト、フォルダ、組織全体で IAM 管理者権限を持つサービス アカウントが必要です。また、このサービス アカウントは、クラスタモードまたは名前空間モードのいずれかを使用して Config Connector のインストールにバインドするように構成されています。
その後、Config Connector を使用して重要な IAM ポリシーをブートストラップおよび管理できます。以降のセクションでは、さまざまなポリシーの例を紹介します。
組織オーナーの権限
Config Connector の権限を拡張して、特定の組織のすべてのプロジェクトとフォルダを管理できるようにするには:
次の YAML マニフェストを作成します。
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Organization external: ORGANIZATION_ID
次のように置き換えます。
NAMESPACE
を名前空間の名前に置き換えます。SERVICE_ACCOUNT_NAME
をサービス アカウント名に置き換えます。HOST_PROJECT_ID
をサービス アカウントのホスト プロジェクト ID に置き換えます。roles/owner
を適切なロールに置き換えるORGANIZATION_ID
を組織 ID に置き換えます。
kubectl
または任意の Config Management ツールを使用して、YAML マニフェストをクラスタに適用します。
フォルダ オーナーの権限
Config Connector の権限を拡張して、特定のフォルダ内のすべてのプロジェクトとフォルダを管理できるようにするには:
次の YAML マニフェストを作成します。
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Folder external: folders/FOLDER_ID
次のように置き換えます。
NAMESPACE
を名前空間の名前に置き換えます。SERVICE_ACCOUNT_NAME
をサービス アカウント名に置き換えます。HOST_PROJECT_ID
をサービス アカウントのホスト プロジェクト ID に置き換えます。roles/owner
を適切なロールに置き換えるFOLDER_ID
を実際のフォルダ ID に置き換える
kubectl
または任意の Config Management ツールを使用して、YAML マニフェストをクラスタに適用します。
プロジェクト オーナーの権限
Config Connector が特定のプロジェクトのリソースを管理できるようにするには、次のコマンドを実行します。
次の YAML マニフェストを作成します。
apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: iampolicymember-orglevel-permission namespace: NAMESPACE spec: member: serviceAccount:SERVICE_ACCOUNT_NAME@HOST_PROJECT_ID.iam.gserviceaccount.com role: roles/owner resourceRef: kind: Project external: projects/PROJECT_ID
次のように置き換えます。
NAMESPACE
を名前空間の名前に置き換えます。SERVICE_ACCOUNT_NAME
をサービス アカウント名に置き換えます。HOST_PROJECT_ID
をサービス アカウントのホスト プロジェクト ID に置き換えます。roles/owner
を適切なロールに置き換えるPROJECT_ID
をターゲット プロジェクト ID に置き換えます。
kubectl
または任意の Config Management ツールを使用して、YAML マニフェストをクラスタに適用します。
制限付きの権限
Config Connector に、より限定的な権限を付与したい場合は、いくつかの IAMPolicyMember リソースまたは組み合わせた IAMPartialPolicy を作成することで、Config Connector のインストールに 1 つ以上の IAM 権限を割り当てることができます。以下のロールは、一般的に Config Connector サービス アカウントに割り当てられます。
編集者: 編集者のロールを付与すると、IAM の変更など、「プロジェクト / 組織」全体の構成を除く、ほとんどの Config Connector 機能が許可されます。
IAM サービス アカウント管理者ロール:
roles/iam.serviceAccountAdmin
権限を付与すると、Config Connector で IAM サービス アカウントを構成できます。リソース マネージャー:
roles/resourcemanager.folderCreator
などのリソース マネージャーのロールを付与すると、Config Connector でフォルダと組織を管理できます。
カスタムロール
IAM は、カスタマイズされたロールを作成する機能も備えています。1 つ以上の権限を持つカスタムロールを作成し、Config Connector にそのカスタムロールを付与できます。詳細については、IAM カスタムロールについてをご覧ください。
次のステップ
- Config Controller の IAM のベスト プラクティスを確認する。
- リソースを整理する方法を学習する。