设置 Openflow - Snowflake Deployment:创建运行时角色¶
Openflow - Snowflake Deployment 需要创建许多资源,这些资源不是特定于部署,而是特定于具体的运行时。通常,此类资源包括:
创建运行时特定的运行时角色
创建运行时特定的网络规则和外部访问集成 (EAI)
本主题介绍这些资源的创建。
创建运行时角色和相关权限,以将数据写入 Snowflake 运行时角色,用于 Snowflake 部署部分的运行时
关联运行时角色。请参阅 Snowflake 部署部分中的运行时角色。
创建外部访问集成并将其关联到运行时。请参阅 创建外部访问集成
当需要出站 PrivateLink 连接来通过 SPCS 出口连接至私有系统时。
创建运行时角色¶
创建和编辑 Openflow 运行时时,运行时所有者能够将角色与运行时相关联。此角色将用于在运行时中执行的流。有关运行时角色的更多信息,请参阅 什么是运行时角色?。
备注
As OPENFLOW_ADMIN, you'll create the Runtime role and grant it to OPENFLOW_ADMIN, so that users granted that role are authorized to set this role on the Runtime.
创建运行时角色是创建运行时的先决条件,涉及以下步骤:
创建角色本身
授予角色对运行时使用的仓库的访问权限。
授予角色对运行时使用的 Snowflake 对象的访问权限。
授予角色对运行时使用的外部访问集成的访问权限。
要创建运行时角色,请执行以下操作:
Create the required runtime role.
备注
<RUNTIMENAME>表示关联运行时的名称。USE ROLE OPENFLOW_ADMIN; CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>; GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO ROLE OPENFLOW_ADMIN;
允许运行时角色使用您计划用于数据引入的现有仓库。稍后在为将使用此运行时角色的运行时配置连接器时,请使用此仓库。
GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
允许运行时角色使用、创建或以其他方式访问 Snowflake 对象。
备注
根据要创建的 Openflow 连接器,所需的基础对象会有所不同。以下示例仅用于说明目的。
GRANT USAGE ON DATABASE <OPENFLOW_SPCS_DATABASE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>; GRANT USAGE ON SCHEMA <OPENFLOW_SPCS_SCHEMA> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
创建网络规则和外部访问集成。¶
Snowflake 的安全模型通过 网络策略 提供对 Snowflake 外部特定端点和系统的安全访问。
网络策略的两个关键方面是 网络规则 和 外部访问集成 (EAI)。其中每个都用于提供对运行时所需的外部资源的安全访问。
创建网络规则和外部访问集成需要三个步骤:
创建网络规则,将网络标识符分组到逻辑区域。
创建外部访问集成 (EAI),指定网络规则列表并确保运行时角色有对 EAI 的 USAGE 权限。
Associate the EAI with the Runtime in the Openflow UI when creating Runtimes.
要创建所需的网络规则和 EAI,请执行以下步骤:
备注
这些示例使用 RUNTIME_NAME 作为正在创建的运行时名称的占位符。
创建适当的网络规则。 有关更多信息,请参阅 CREATE NETWORK RULE。
备注
<OPENFLOW_DATABASE>表示将包含网络规则的数据库的名称。Snowflake 建议为与 Openflow 相关的网络规则和外部访问集成创建特定数据库。USE DATABASE <OPENFLOW_DATABASE>; CREATE OR REPLACE NETWORK RULE OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE MODE = EGRESS TYPE = HOST_PORT VALUE_LIST = ('comma separated list of host:port pairs');
创建关联的外部集成。有关更多信息,请参阅 CREATE EXTERNAL ACCESS INTEGRATION。
USE ROLE ACCOUNTADMIN; CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME>_EAI ALLOWED_NETWORK_RULES = (OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE) ENABLED = TRUE;
向先前创建的运行时角色授予对 EAI 的访问权限。
GRANT USAGE ON INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIME_NAME>;