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 の権限を拡張して、特定の組織のすべてのプロジェクトとフォルダを管理できるようにするには:

  1. 次の 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 に置き換えます。
  2. kubectl または任意の Config Management ツールを使用して、YAML マニフェストをクラスタに適用します。

フォルダ オーナーの権限

Config Connector の権限を拡張して、特定のフォルダ内のすべてのプロジェクトとフォルダを管理できるようにするには:

  1. 次の 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 に置き換える
  2. kubectl または任意の Config Management ツールを使用して、YAML マニフェストをクラスタに適用します。

プロジェクト オーナーの権限

Config Connector が特定のプロジェクトのリソースを管理できるようにするには、次のコマンドを実行します。

  1. 次の 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 に置き換えます。
  2. 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 カスタムロールについてをご覧ください。

次のステップ