IAM によるアクセス制御

このページでは、Cloud FTP リソースへのアクセスを制御する方法について説明します。

Cloud FTP は、Identity and Access Management(IAM)を使用してリソースへのアクセスを制御します。IAM は、 Google Cloud リソースのきめ細かい認可を管理するためのツールです。つまり、IAM を使用すると、どのリソースで誰が何をできるかを制御できます。

IAM でユーザーにリソースへのアクセス権を付与するには、特定のロールを付与します。IAM ロールにより、プリンシパルに Cloud FTP リソースでタスクを実行する権限が付与されます。

IAM とその機能の詳細については、IAM のドキュメントをご覧ください。

Cloud FTP リソースへのアクセスを管理する

IAM でアクセスを管理する最も一般的な方法は、許可ポリシーを使用することです。許可ポリシーには、リソースにアクセスできるプリンシパルと、そのプリンシパルがリソースに対して実行できるアクションが記述されています。

以降のセクションでは、 Google Cloud コンソールと Google Cloud CLI を使用して、許可ポリシーでアクセスを管理する方法について説明します。これには、単一のロールの付与や取り消しなど、一般的なタスクの手順が含まれます。複数のロールを同時に付与または取り消すこともできます。詳細については、IAM ドキュメントのプロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

さまざまな Google Cloud リソースに適用されている許可ポリシーを使用して、リソース階層の他のレベルでアクセスを管理することもできます。詳細については、IAM ドキュメントのリソース階層を使用したアクセス制御をご覧ください。

すべてのリソースが許可ポリシーをサポートしているわけではありません。許可ポリシーを適用できるリソースについては、IAM ドキュメントの許可ポリシーをサポートするリソースをご覧ください。

IAM でアクセスを制御するために使用できる他のポリシー(拒否ポリシーなど)については、IAM ドキュメントの IAM ポリシーの種類をご覧ください。

プロジェクト、フォルダ、組織に対する単一の IAM ロールを付与する

このセクションでは、プロジェクト、フォルダ、組織レベルでアクセス権を付与する方法について説明します。これにより、プロジェクト、フォルダ、組織とその内部のすべてのリソースに対するユーザーのアクセスが制御されます。

プロジェクト、フォルダ、組織のプリンシパルに 1 つのロールを付与するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[IAM] ページに移動します。

    IAM に移動

  2. プロジェクト、フォルダ、または組織を選択します。
  3. ロールを付与するプリンシパルを選択します。
    • リソースに対する追加のロールをプリンシパルに付与するには、プリンシパルを含む行を見つけて、その行で [ プリンシパルを編集] をクリックし、[ 別のロールを追加] をクリックします。

      サービス エージェントにロールを付与するには、[ Google提供のロール付与を含みます] チェックボックスをオンにして、メールアドレスを表示します。

    • リソースに対する既存のロールを持たないプリンシパルにロールを付与するには、 [アクセスを許可] をクリックし、プリンシパル ID(my-user@example.com や //iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com など)を入力します。
  4. 付与するロールをプルダウン リストから選択します。セキュリティのベスト プラクティスに沿って、プリンシパルが必要とする権限のみを含むロールを選択してください。
  5. (省略可)ロールに条件を追加します。
  6. [保存] をクリックします。リソースのロールがプリンシパルに付与されます。

gcloud

  1. Google Cloud コンソールで Cloud Shell をアクティブにします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  2. add-iam-policy-binding コマンドを使用すると、プリンシパルにロールをすばやく付与できます。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • RESOURCE_TYPE: アクセスを管理するリソースタイプ。projects、resource-manager folders、または organizations を使用します。

    • RESOURCE_ID: Google Cloud プロジェクト、フォルダ、または組織 ID。プロジェクト ID は英数字です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

    • PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:ID の形式で指定します。 例: user:my-user@example.com または principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com。PRINCIPAL に使用できる値の一覧については、プリンシパル ID をご覧ください。

      プリンシパル タイプが user の場合、識別子に含まれるドメイン名は Google Workspace ドメインまたは Cloud Identity ドメインである必要があります。Cloud Identity ドメインの設定方法については、Cloud Identity の概要をご覧ください。

    • ROLE_NAME: 付与するロールの名前。次のいずれかの形式で指定してください。

      • 事前定義ロール: roles/SERVICE.IDENTIFIER
      • プロジェクト レベルのカスタムロール: projects/PROJECT_ID/roles/IDENTIFIER
      • 組織レベルのカスタムロール: organizations/ORG_ID/roles/IDENTIFIER

      事前定義ロールのリストについては、ロールについてをご覧ください。

    • CONDITION: ロール バインディングに追加する条件。条件を追加しない場合は、値 None を使用します。条件の詳細については、条件の概要をご覧ください。

    次のコマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
        --member=PRINCIPAL --role=ROLE_NAME \
        --condition=CONDITION

    Windows(PowerShell)

    gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID `
        --member=PRINCIPAL --role=ROLE_NAME `
        --condition=CONDITION

    Windows(cmd.exe)

    gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^
        --member=PRINCIPAL --role=ROLE_NAME ^
        --condition=CONDITION

    レスポンスには、更新された IAM 許可ポリシーが含まれます。

プロジェクト、フォルダ、組織に対する単一の IAM ロールを取り消す

このセクションでは、プロジェクト、フォルダ、組織レベルでアクセス権を取り消す方法について説明します。これにより、プロジェクト、フォルダ、組織とその内部のすべてのリソースに対するユーザーのアクセスが制御されます。

プロジェクト、フォルダ、組織のプリンシパルから 1 つのロールを取り消すには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[IAM] ページに移動します。

    IAM に移動

  2. プロジェクト、フォルダ、または組織を選択します。
  3. アクセス権を取り消すプリンシパルを含む行を探します。その行の [ プリンシパルを編集します] をクリックします。
  4. 取り消すロールの [削除] ボタンをクリックし、[保存] をクリックします。

gcloud

  1. Google Cloud コンソールで Cloud Shell をアクティブにします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  2. ユーザーからロールを取り消すには、remove-iam-policy-binding コマンドを実行します。

    gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID \
        --member=PRINCIPAL --role=ROLE_NAME

    次の値を指定します。

    • RESOURCE_TYPE: アクセスを管理するリソースタイプ。projects、resource-manager folders、または organizations を使用します。

    • RESOURCE_ID: Google Cloud プロジェクト、フォルダ、または組織 ID。プロジェクト ID は英数字です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

    • PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:ID の形式で指定します。 たとえば、user:my-user@example.com や principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com です。

      プリンシパル タイプが user の場合、識別子に含まれるドメイン名は Google Workspace ドメインまたは Cloud Identity ドメインである必要があります。Cloud Identity ドメインの設定方法については、Cloud Identity の概要をご覧ください。

    • ROLE_NAME: 取り消すロールの名前。次のいずれかの形式で指定してください。

      • 事前定義ロール: roles/SERVICE.IDENTIFIER
      • プロジェクト レベルのカスタムロール: projects/PROJECT_ID/roles/IDENTIFIER
      • 組織レベルのカスタムロール: organizations/ORG_ID/roles/IDENTIFIER

      事前定義ロールのリストについては、ロールについてをご覧ください。

    たとえば、プロジェクト example-project のサービス アカウント example-service-account@example-project.iam.gserviceaccount.com のプロジェクト作成者のロールを取り消すには、次のコマンドを使用します。

    gcloud projects remove-iam-policy-binding example-project \
          --member=serviceAccount:example-service-account@example-project.iam.gserviceaccount.com \
          --role=roles/resourcemanager.projectCreator

必要なロールを取り消さないように、変更リスクの推奨事項を有効にできます。変更リスクの推奨事項により、 Google Cloud で重要とされているプロジェクト レベルのロールを取り消そうとすると、警告が生成されます。

条件付きアクセス

IAM 条件を使用すると、特定の条件が満たされた場合にのみプリンシパルにアクセス権を付与することで、ポリシーをより詳細に設定できます。条件は、プリンシパル、リソース、リクエストに関連する属性に基づいています。たとえば、特定の場所または特定の時間にリソースにアクセスしている場合にのみ、プリンシパルにアクセス権を付与できます。

許可ポリシーの条件は、次のタイプの属性に基づいています。

  • リソース属性: リソースのサービス、タイプ、名前が含まれます。これらの属性は通常、ロール バインディングによって付与されたアクセスのスコープを変更するために使用されます。
  • リクエストの属性: リクエストを行ったプリンシパルの時間やアクセスレベルなど、リクエストの詳細が含まれます。これらの属性を使用すると、アクセスレベル、日時、宛先 IP アドレスとポート、想定 URL パスなど、リクエストの詳細情報を評価する条件を作成できます。

Cloud FTP でサポートされている IAM 条件属性の詳細については、IAM ドキュメントの IAM Conditions の属性リファレンスをご覧ください。

Cloud FTP リソースに条件付きアクセス権を直接付与することはできません。ただし、プロジェクト、フォルダ、組織などのコンテナ リソースのプリンシパルにロールを付与し、これらのロール バインディングに条件を追加することで、Cloud FTP リソースタイプに条件付きアクセス権を付与できます。コンテナ リソースの許可ポリシーに追加された条件は、そのコンテナ リソースに含まれるリソースに継承されます。継承された条件の詳細については、IAM ドキュメントの継承された条件のサポートをご覧ください。

ロール バインディングに条件を追加する方法については、IAM ドキュメントの条件付きロール バインディングの管理をご覧ください。

次のステップ

  • IAM によるアクセス制御の詳細については、IAM の概要をご覧ください。
  • Cloud FTP で使用可能なロールと権限を表示するには、Cloud FTP のロールと権限をご覧ください。