- 概述
- 开始使用
- 概念
- 使用 UiPath CLI
- 操作指南
- CI/CD 方法
- 命令参考
- 迁移
- 参考与支持
Syntax and options for `uip admin ip-restriction`, which manages IP-range allowlisting, enforcement, and bypass rules for an organization via the Access Policy Management Service.
uip admin ip-restriction manages UiPath IP-restriction policies for the caller's organization, backed by the Access Policy Management Service (APMS). Four subcommand groups: ip-ranges (the allowlist of trusted CIDRs/IP ranges), enforcement (the on/off switch that actually gates access by that allowlist), bypass-rules (URL-pattern exceptions to allowlisting), and my-ip (shows the public IP the platform sees for the caller — the tool a reader uses before touching either of the other two).
Lockout risk. Enabling enforcement (enforcement enable) or removing an IP range entry (ip-ranges delete) while enforcement is on can lock the caller — or the entire organization — out of UiPath if the wrong IP ends up excluded. Both commands require --confirm, and the CLI runs its own pre-flight safety checks (below) before making the call — but the checks are best-effort, not a substitute for double-checking with my-ip and ip-ranges list first.
大纲
uip admin ip-restriction ip-ranges list [--filter <fragment>]
uip admin ip-restriction ip-ranges get [<id>] [--cidr <cidr>]
uip admin ip-restriction ip-ranges create [--name <name> --cidr <cidr>... | --name <name> --start-ip <ip> --end-ip <ip> | --file <path>] [--expires <duration>]
uip admin ip-restriction ip-ranges update <id> [--name <name>] [--cidr <cidr>] [--start-ip <ip>] [--end-ip <ip>] [--file <path>]
uip admin ip-restriction ip-ranges delete [<id>] [--cidr <cidr>] --confirm
uip admin ip-restriction enforcement get
uip admin ip-restriction enforcement enable --confirm
uip admin ip-restriction enforcement disable
uip admin ip-restriction bypass-rules list [--filter <fragment>]
uip admin ip-restriction bypass-rules get <id>
uip admin ip-restriction bypass-rules create --file <path>
uip admin ip-restriction bypass-rules update <id> [--regex-entry <pattern> | --file <path>]
uip admin ip-restriction bypass-rules delete <id>
uip admin ip-restriction my-ip
uip admin ip-restriction ip-ranges list [--filter <fragment>]
uip admin ip-restriction ip-ranges get [<id>] [--cidr <cidr>]
uip admin ip-restriction ip-ranges create [--name <name> --cidr <cidr>... | --name <name> --start-ip <ip> --end-ip <ip> | --file <path>] [--expires <duration>]
uip admin ip-restriction ip-ranges update <id> [--name <name>] [--cidr <cidr>] [--start-ip <ip>] [--end-ip <ip>] [--file <path>]
uip admin ip-restriction ip-ranges delete [<id>] [--cidr <cidr>] --confirm
uip admin ip-restriction enforcement get
uip admin ip-restriction enforcement enable --confirm
uip admin ip-restriction enforcement disable
uip admin ip-restriction bypass-rules list [--filter <fragment>]
uip admin ip-restriction bypass-rules get <id>
uip admin ip-restriction bypass-rules create --file <path>
uip admin ip-restriction bypass-rules update <id> [--regex-entry <pattern> | --file <path>]
uip admin ip-restriction bypass-rules delete <id>
uip admin ip-restriction my-ip
Every verb accepts --login-validity <minutes> (override the interactive-login token lifetime for that one call; rarely needed).
概念
- Idempotent upsert on
ip-ranges create— the call is a PUT keyed on CIDR: running it twice with the same--cidris a safe no-op, not a duplicate-entry error. - Two ways to identify an entry —
ip-ranges get/deleteaccept either the entry's UUID positionally, or--cidr <cidr>to look it up by value (the CLI lists entries and matches). Passing both, or neither, is a client-side error. If--cidrmatches more than one entry, the command refuses and asks you to use the UUID instead. - Lockout-safety pre-flights —
enforcement enablefirst callsmy-ipand checks the result against every CIDR inip-ranges list; if the caller's IP isn't covered, the call is rejected before it reaches the platform.ip-ranges deleteruns a similar check only when enforcement is already on: it refuses to delete the org's only remaining entry, and refuses to delete an entry that uniquely covers the caller's own IP (unless another entry also covers it). Both checks are CIDR-only — a start/end-IP-range-only entry isn't matched by the caller-IP check, so the "last entry" check is the real backstop for those. --filevs. inline —ip-ranges create/updateandbypass-rules create/updateall accept either a full JSON request body via--file <path>, or a narrower set of inline flags. The two are mutually exclusive; passing neither (or an incomplete inline set) is a client-side error before any network call.
uip admin ip-restriction ip-ranges
Manage the organization's IP allowlist. An entry is a CIDR block, a start/end IP range, or a list of CIDRs.
uip admin ip-restriction ip-ranges list
选项
| 长 | 值 | 描述 |
|---|---|---|
--filter <fragment> | 字符串 | Case-insensitive substring filter on the entry's name, applied client-side. |
示例
uip admin ip-restriction ip-ranges list --filter office
uip admin ip-restriction ip-ranges list --filter office
数据形状(--输出 json)
{
"Code": "ApmsIpRangesList",
"Data": [
{ "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Office VPN", "ipNetwork": "10.0.0.0/16" }
]
}
{
"Code": "ApmsIpRangesList",
"Data": [
{ "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Office VPN", "ipNetwork": "10.0.0.0/16" }
]
}
uip admin ip-restriction ip-ranges get
参数
| 名称 | 必填 | 用途 |
|---|---|---|
[id] | conditionally | Entry UUID. Omit only when --cidr is passed instead. |
选项
| 长 | 值 | 描述 |
|---|---|---|
--cidr <cidr> | 字符串 | Look up the entry by CIDR instead of id. Mutually exclusive with the positional id; exactly one of the two is required. |
示例
uip admin ip-restriction ip-ranges get --cidr 10.0.0.0/16
uip admin ip-restriction ip-ranges get --cidr 10.0.0.0/16
数据形状(--输出 json)
{
"Code": "ApmsIpRangeGet",
"Data": { "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Office VPN", "ipNetwork": "10.0.0.0/16" }
}
{
"Code": "ApmsIpRangeGet",
"Data": { "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Office VPN", "ipNetwork": "10.0.0.0/16" }
}
uip admin ip-restriction ip-ranges create
选项
| 长 | 值 | 必填 | 描述 |
|---|---|---|---|
--file <path> | 路径 | conditionally | Full AddIpConfigurationRequest JSON body. Mutually exclusive with every inline flag below. |
--name <name> | 字符串 | inline mode: yes | Display name for the entry. |
--cidr <cidr> | string, repeatable | inline mode: one of --cidr or --start-ip+--end-ip | CIDR block to allow, e.g. 10.0.0.0/16. Repeat the flag to add several CIDRs in one call. Mutually exclusive with --start-ip/--end-ip. |
--start-ip <ip> | 知识产权 | paired with --end-ip | Start of an IP range (legacy shape). |
--end-ip <ip> | 知识产权 | paired with --start-ip | End of an IP range. Must be given together with --start-ip. |
--expires <duration> | <integer><m|h|d|w> | 否 | Optional expiry, e.g. 15m, 2h, 30d, 1w. Range: 1 minute to 10 years. |
示例
uip admin ip-restriction ip-ranges create --name 'Office VPN' --cidr 10.0.0.0/16
uip admin ip-restriction ip-ranges create --name 'Office VPN' --cidr 10.0.0.0/16
uip admin ip-restriction ip-ranges create --name 'Datacenter A' \
--cidr 10.0.0.0/16 --cidr 192.168.0.0/24 --expires 30d
uip admin ip-restriction ip-ranges create --name 'Datacenter A' \
--cidr 10.0.0.0/16 --cidr 192.168.0.0/24 --expires 30d
uip admin ip-restriction ip-ranges create --name Office --start-ip 10.0.0.1 --end-ip 10.0.0.50
uip admin ip-restriction ip-ranges create --name Office --start-ip 10.0.0.1 --end-ip 10.0.0.50
数据形状(--输出 json)
{ "Code": "ApmsIpRangeCreated", "Data": [{ "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Office VPN" }] }
{ "Code": "ApmsIpRangeCreated", "Data": [{ "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Office VPN" }] }
uip admin ip-restriction ip-ranges update
参数
| 名称 | 必填 | 用途 |
|---|---|---|
<id> | 是 | Entry UUID. |
选项
| 长 | 值 | 描述 |
|---|---|---|
--file <path> | 路径 | Full UpdateIpConfigurationRequest JSON body. Mutually exclusive with the inline flags below. |
--name <name> | 字符串 | 新显示名称。 |
--cidr <cidr> | 字符串 | New CIDR to set on the entry. |
--start-ip <ip> | 知识产权 | New start of the range. |
--end-ip <ip> | 知识产权 | New end of the range. |
At least one field (inline or --file) is required.
示例
uip admin ip-restriction ip-ranges update a1b2c3d4-0000-0000-0000-000000000001 --name 'Home VPN'
uip admin ip-restriction ip-ranges update a1b2c3d4-0000-0000-0000-000000000001 --name 'Home VPN'
数据形状(--输出 json)
{ "Code": "ApmsIpRangeUpdated", "Data": { "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Home VPN" } }
{ "Code": "ApmsIpRangeUpdated", "Data": { "id": "a1b2c3d4-0000-0000-0000-000000000001", "name": "Home VPN" } }
uip admin ip-restriction ip-ranges delete
参数
| 名称 | 必填 | 用途 |
|---|---|---|
[id] | conditionally | Entry UUID. Omit only when --cidr is passed instead. |
选项
| 长 | 值 | 必填 | 描述 |
|---|---|---|---|
--cidr <cidr> | 字符串 | conditionally | Look up the entry to delete by CIDR instead of id. |
--confirm | 标记 | 是 | Acknowledge the lockout risk. Omitting it prints the lockout warning and fails before any lookup. |
示例
uip admin ip-restriction ip-ranges delete a1b2c3d4-0000-0000-0000-000000000001 --confirm
uip admin ip-restriction ip-ranges delete a1b2c3d4-0000-0000-0000-000000000001 --confirm
数据形状(--输出 json)
{ "Code": "ApmsIpRangeDeleted", "Data": {} }
{ "Code": "ApmsIpRangeDeleted", "Data": {} }
uip admin ip-restriction enforcement
Manage the organization's singleton IP-range enforcement switch. When on, only the IPs covered by ip-ranges list can reach the org; when off, the platform default applies.
uip admin ip-restriction enforcement get
示例
uip admin ip-restriction enforcement get
uip admin ip-restriction enforcement get
数据形状(--输出 json)
{ "Code": "ApmsEnforcementGet", "Data": { "organizationId": "<org-guid>", "status": "Disabled" } }
{ "Code": "ApmsEnforcementGet", "Data": { "organizationId": "<org-guid>", "status": "Disabled" } }
uip admin ip-restriction enforcement enable
选项
| 长 | 值 | 必填 | 描述 |
|---|---|---|---|
--confirm | 标记 | 是 | Acknowledge the lockout risk. Without it, the CLI prints the warning and fails immediately, before the pre-flight check. |
Pre-flight (runs after --confirm is given): calls my-ip, then compares the result against every CIDR from ip-ranges list. If the caller's IP isn't covered, the command fails with instructions to add it first — no network call to enable enforcement is made.
示例
uip admin ip-restriction enforcement enable --confirm
uip admin ip-restriction enforcement enable --confirm
数据形状(--输出 json)
{ "Code": "ApmsEnforcementEnabled", "Data": {} }
{ "Code": "ApmsEnforcementEnabled", "Data": {} }
uip admin ip-restriction enforcement disable
Idempotent — safe to call when already disabled.
示例
uip admin ip-restriction enforcement disable
uip admin ip-restriction enforcement disable
数据形状(--输出 json)
{ "Code": "ApmsEnforcementDisabled", "Data": {} }
{ "Code": "ApmsEnforcementDisabled", "Data": {} }
uip admin ip-restriction bypass-rules
Manage URL-pattern exceptions to IP allowlisting — a narrowly-scoped bypass for a specific app/folder/tenant URL pattern when the org otherwise has enforcement on.
uip admin ip-restriction bypass-rules list
选项
| 长 | 值 | 描述 |
|---|---|---|
--filter <fragment> | 字符串 | Case-insensitive substring filter on regexEntry or appName, applied client-side. |
示例
uip admin ip-restriction bypass-rules list --filter contoso
uip admin ip-restriction bypass-rules list --filter contoso
数据形状(--输出 json)
{ "Code": "ApmsBypassRulesList", "Data": [{ "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" }] }
{ "Code": "ApmsBypassRulesList", "Data": [{ "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" }] }
uip admin ip-restriction bypass-rules get
参数
| 名称 | 必填 | 用途 |
|---|---|---|
<id> | 是 | Bypass rule UUID. |
示例
uip admin ip-restriction bypass-rules get b1c2d3e4-0000-0000-0000-000000000001
uip admin ip-restriction bypass-rules get b1c2d3e4-0000-0000-0000-000000000001
数据形状(--输出 json)
{ "Code": "ApmsBypassRulesGet", "Data": { "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" } }
{ "Code": "ApmsBypassRulesGet", "Data": { "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" } }
uip admin ip-restriction bypass-rules create
选项
| 长 | 值 | 必填 | 描述 |
|---|---|---|---|
--file <path> | 路径 | 是 | Full AddRegexBypassRequest JSON body — there is no inline-flag form for create. |
示例
uip admin ip-restriction bypass-rules create --file ./bypass-rule.json
uip admin ip-restriction bypass-rules create --file ./bypass-rule.json
数据形状(--输出 json)
{ "Code": "ApmsBypassRulesCreated", "Data": { "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" } }
{ "Code": "ApmsBypassRulesCreated", "Data": { "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" } }
uip admin ip-restriction bypass-rules update
参数
| 名称 | 必填 | 用途 |
|---|---|---|
<id> | 是 | Bypass rule UUID. |
选项
| 长 | 值 | 描述 |
|---|---|---|
--regex-entry <pattern> | 字符串 | Replacement regex pattern — the only field the typical case needs. Mutually exclusive with --file. |
--file <path> | 路径 | Full UpdateRegexBypassRequest body, for the rarer case of updating tenant/app metadata too. Mutually exclusive with --regex-entry. |
Exactly one of --regex-entry or --file is required.
示例
uip admin ip-restriction bypass-rules update b1c2d3e4-0000-0000-0000-000000000001 --regex-entry '^.*\.contoso\.com$'
uip admin ip-restriction bypass-rules update b1c2d3e4-0000-0000-0000-000000000001 --regex-entry '^.*\.contoso\.com$'
数据形状(--输出 json)
{ "Code": "ApmsBypassRulesUpdated", "Data": { "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" } }
{ "Code": "ApmsBypassRulesUpdated", "Data": { "id": "b1c2d3e4-0000-0000-0000-000000000001", "regexEntry": "^.*\\.contoso\\.com$" } }
uip admin ip-restriction bypass-rules delete
参数
| 名称 | 必填 | 用途 |
|---|---|---|
<id> | 是 | Bypass rule UUID. |
示例
uip admin ip-restriction bypass-rules delete b1c2d3e4-0000-0000-0000-000000000001
uip admin ip-restriction bypass-rules delete b1c2d3e4-0000-0000-0000-000000000001
数据形状(--输出 json)
{ "Code": "ApmsBypassRulesDeleted", "Data": {} }
{ "Code": "ApmsBypassRulesDeleted", "Data": {} }
uip admin ip-restriction my-ip
Show the public IP the UiPath platform sees for the current caller — useful before ip-ranges create (to know what to allowlist) and before enforcement enable (to confirm you're covered).
示例
uip admin ip-restriction my-ip
uip admin ip-restriction my-ip
数据形状(--输出 json)
{ "Code": "ApmsMyIpGet", "Data": { "ipAddress": "<your-public-ip>" } }
{ "Code": "ApmsMyIpGet", "Data": { "ipAddress": "<your-public-ip>" } }
另请参阅
- 大纲
- 概念
- uip admin ip-restriction ip-ranges
- uip admin ip-restriction ip-ranges list
- uip admin ip-restriction ip-ranges get
- uip admin ip-restriction ip-ranges create
- uip admin ip-restriction ip-ranges update
- uip admin ip-restriction ip-ranges delete
- uip admin ip-restriction enforcement
- uip admin ip-restriction enforcement get
- uip admin ip-restriction enforcement enable
- uip admin ip-restriction enforcement disable
- uip admin ip-restriction bypass-rules
- uip admin ip-restriction bypass-rules list
- uip admin ip-restriction bypass-rules get
- uip admin ip-restriction bypass-rules create
- uip admin ip-restriction bypass-rules update
- uip admin ip-restriction bypass-rules delete
- uip admin ip-restriction my-ip
- 示例
- 数据形状(--输出 json)
- 另请参阅