Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

デバイス登録の権限を定義する

最終更新 Markdown で表示Agent セットアップ

デバイス登録の権限は、どのユーザーが組織の Cloudflare Zero Trust インスタンスに新しいデバイスを接続できるかを決めます。ユーザーがデバイスを登録すると、Cloudflare One Client はアイデンティティトークンを保存し、プライベートネットワーク内のサービスへの認証に使います。

デバイス登録の権限を設定する

  1. Cloudflare ダッシュボード で、Zero Trust > Team & Resources > Devices > Device profiles > Management を開きます。

  2. Device enrollment > Device enrollment permissionsManage を選択します。

  3. Policies タブで、デバイスを参加できるユーザーを定義する Access ポリシー を 1 つ以上設定します。たとえば、会社のメールアドレスを持つすべてのユーザーを許可できます。

    ルールタイプ セレクター
    Include Emails ending in @company.com
  1. Login methods タブで:

    a. ユーザーが認証に使える アイデンティティプロバイダー を選びます。アイデンティティプロバイダーを統合していない場合は、ワンタイム PIN を使えます。

    b. (任意)単一の IdP だけでアクセスを許可する場合は、Apply instant authentication をオンにします。エンドユーザーには Cloudflare Access のログインページは表示されません。代わりに、Cloudflare が SSO ログインへ直接リダイレクトします。

  2. Save を選択します。

  1. cloudflare_api_token に次の権限を追加します。

    • Access: Apps and Policies Write
  2. cloudflare_zero_trust_access_policy リソースで、再利用可能な Access ポリシーを作成します。

    resource "cloudflare_zero_trust_access_policy" "allow_company_emails" {
    	account_id   = var.cloudflare_account_id
    	name         = "Allow company emails"
    	decision     = "allow"
    	include      = [
    		{
    			email_domain = {
    				domain = "@example.com"
    			}
    		}
    	]
    }
  3. cloudflare_zero_trust_access_application リソースを使い、タイプ warp のアプリケーションを作成します。

    resource "cloudflare_zero_trust_access_application" "device_enrollment" {
    	account_id       = var.cloudflare_account_id
    	type             = "warp"
    	name             = "Warp device enrollment"
    	allowed_idps              = [cloudflare_zero_trust_access_identity_provider.microsoft_entra_id.id]
    	auto_redirect_to_identity = true
    	app_launcher_visible      = false
    	policies = [
    		{
    			id = cloudflare_zero_trust_access_policy.allow_company_emails.id
    			precedence = 1
    		}
    	]
    }

会社デバイスだけを許可する

デバイスポスチャの評価は、デバイスが Zero Trust 組織に登録されたあとで行われます。特定のデバイスだけを登録できるようにしたい場合は、デバイス登録ポリシーに 相互 TLS 認証 ルールを追加することを推奨します。このルールは、登録するデバイスに特定のクライアント証明書があるかを確認します。

証明書の要件

  • CA 証明書は、公開信頼されている CA のもの、または自己署名のものを使用できます。

  • 証明書の Basic Constraints では、属性 CATRUE に設定する必要があります。

  • 証明書は、次のいずれかの署名アルゴリズムを使用する必要があります。

    使用できる署名アルゴリズム

    x509.SHA1WithRSA

    x509.SHA256WithRSA

    x509.SHA384WithRSA

    x509.SHA512WithRSA

    x509.ECDSAWithSHA1

    x509.ECDSAWithSHA256

    x509.ECDSAWithSHA384

    x509.ECDSAWithSHA512

mTLS 証明書を確認するには:

  1. Cloudflare ダッシュボードZero Trust > Access controls > Service credentials > Mutual TLS を開きます。

  2. Add mTLS Certificate を選択します。

  3. ルート CA の名前を任意で入力します。

  4. Certificate content にルート CA の内容を貼り付けます。

    クライアント証明書がルート CA で直接署名されている場合は、ルートだけをアップロードします。クライアント証明書が中間証明書で署名されている場合は、CA チェーン全体(中間とルート)をアップロードする必要があります。例:

    -----BEGIN CERTIFICATE-----
    <intermediate.pem>
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    <rootCA.pem>
    -----END CERTIFICATE-----
  5. Associated hostnames に、Zero Trust の チームドメイン を入力します: <team-name>.cloudflareaccess.com

  6. デバイス登録の権限 に、Common Name または Valid Certificate のルールを追加します。たとえば、次のポリシーは特定のコモンネームを持つクライアント証明書を要求します。

    アクション ルールタイプ セレクター
    Allow Require Common Name <CERT-COMMON-NAME>
  7. デバイスで、クライアント証明書を システムキーチェーン に追加します。

  1. cloudflare_api_token に次の権限を追加します。

    • Access: Mutual TLS Certificates Write
    • Access: Apps and Policies Write
  2. cloudflare_zero_trust_access_mtls_certificate リソースを使い、アカウントに mTLS 証明書を追加します。

    resource "cloudflare_zero_trust_access_mtls_certificate" "example_mtls_cert" {
    	account_id     = var.cloudflare_account_id
    	name           = "WARP enrollment mTLS cert"
    	certificate    = <<EOT
    	-----BEGIN CERTIFICATE-----
    	xxxx
    	xxxx
    	-----END CERTIFICATE-----
    	EOT
    	associated_hostnames = ["your-team-name.cloudflareaccess.com"]
    }
  3. 次の Access ポリシーを作成します。

    resource "cloudflare_zero_trust_access_policy" "warp_enrollment_mtls" {
    	account_id     = var.cloudflare_account_id
    	name           = "Allow employees with mTLS cert"
    	decision       = "allow"
    	include = [
    		{
    			email_domain = {
    				domain = "@example.com"
    			}
    		}
    	]
    
    	require = [
    		{
    			common_name = {
    				common_name = "Common name 1"
    			}
    		},
    				{
    			common_name = {
    				common_name = "Common name 2"
    			}
    		}
    	]
    }
  4. このポリシーを Cloudflare One Client 向けの cloudflared_zero_trust_access_application に追加します。

  5. デバイスで、クライアント証明書を システムキーチェーン に追加します。

ベストプラクティス

多くの企業は、ユーザーディレクトリの信頼できる情報源として、単一のアイデンティティプロバイダーを使います。この情報源を使って、会社のユーザーを Zero Trust にオンボードしてください。たとえば、会社のメールアドレスで、メインのアイデンティティプロバイダーへログインすることを必須にします。そのあと、必要に応じて、業務委託先、ベンダー、買収した企業など、ネットワークへのアクセスが必要な相手向けに、別のログイン方法やアイデンティティプロバイダーを追加できます。

役に立ちましたか?