• 关于

    功能实体常见故障

    的搜索结果

回答

进程是操作系统中最基本、重要的概念,是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。狭义上讲,进程是正在运行的程序的实例;广义上讲,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统进行资源分配和调度、动态执行的基本单元,是操作系统结构的基础,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。其概念主要有两点:(1)进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域、数据区域和堆栈。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。(2)进程是一个“执行中的程序”。只有在操作系统、处理器执行程序时,它才能成为一个活动的实体,我们称其为进程。从理论角度看,进程是对正在运行的程序过程的抽象;从实现角度看,它是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。 一、进程具有以下特点: (1)动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生、动态消亡的。 (2)并发性:任何进程都可以与其他进程一起并发执行。 (3)独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。 (4)异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。 (5)结构特征:进程由程序、数据和进程控制块三部分组成。 二、进程、线程和程序的联系: 通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。此外多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进程。 三、进程和程序的区别: (1)程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念,而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 (2)程序可以作为一种软件资料长期存在,而进程是有一定生命期的。 (3)程序是永久的,进程是暂时的。 (4)进程更能真实地描述并发,而程序不能。 (5)进程是由进程控制块、程序段、数据段三部分组成。 (6)进程具有创建其他进程的功能而程序没有。 (7)在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。 四、进程具有的三种基本状态 由于进程在执行过程中具有动态性和异步性,因此也就决定了进程可能具有多种状态。 (1)就绪状态(Ready):进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。 (2)运行状态(Running):进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。 (3)阻塞状态(Blocked):由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器资源分配给该进程,也无法运行。 五、创建进程的事件 在多道程序环境中,只有作为进程时才能在系统中运行。因此,为了让程序能运行,就必须为它创建进程。一个进程去创建另一个进程的典型事件,可以有以下四类: (1) 用户登录:在分时系统中,用户在终端键入登录命令后,如果是合法用户,系统将为该终端建立一个进程,并把它插入到就绪队列中。 (2)作业调度:在批处理系统中,当作业调度程序按照一定的算法调度到某作业时,便将该作业装入到内存,为它分配必要的资源,并立即为它创建进程,再插入到就绪队列中。 (3) 提供服务:当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务,例如,用户程序要求进行文件打印,操作系统将为它创建一个打印进程,这样,不仅可以使打印进程与该用户进程并发执行,而且还便于计算出为完成打印任务所花费的时间。 (4) 应用请求:在上述三种情况中,都是由系统内核为它创建一个新进程,而这一类事件则是基于应用进程的需求,由它创建一个新的进程,以便使新进程以并发的运行方式完成特定任务。 六、进程的创建过程 一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语create()按下述步骤创建一个新进程。 (1) 申请空白PCB。为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。 (2) 为新进程分配资源。为新进程的程序和数据以及用户栈分配必要的内存空间。显然,此时操作系统必须知道新进程所需要的内存大小。 (3) 初始化进程控制块。PCB的初始化主要包括:初始化标识信息,将系统分配的标识符和父进程标识符,填入新的PCB中;初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶;初始化处理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式的方式提出高优先级要求。 (4) 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列中。 七、引起进程终止的事件 (1)正常结束:在任何计算机系统中,都应该有一个表示进程已经运行完成的指示。例如,在批处理系统中,通常在程序的最后安排一条Hold指令或终止的系统调用。当程序运行到Hold指令时,将产生一个中断,去通知OS本进程已经完成。 (2)异常结束:在进程运行期间,由于出现某些错误和故障而迫使进程终止。这类异常事件很多,常见的有:越界错误,保护错,非法指令,特权指令错,运行超时,等待超时,算术运算错,I/O故障。 (3)外界干预:外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。这些干预有:操作员或操作系统干预、父进程请求、父进程终止。 八、进程的终止过程 如果系统发生了上述要求终止进程的某事件后,OS便调用进程终止原语,按如下过程去终止指定的进程。 (1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程状态。 (2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真。用于指示该进程被终止后应重新进行调度。 (3)若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。 (4)将被终止的进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。 (5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。 九、阻塞唤醒 1、引起进程阻塞和唤醒的事件 (1)请求系统服务:当正在执行的进程请求操作系统提供服务时,由于某种原因,操作系统并不立即满足该进程的要求时,该进程只能转变为阻塞状态来等待,一旦要求得到满足后,进程被唤醒。 (2)启动某种操作:当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,则必须先使该进程阻塞,以等待该操作完成,该操作完成后,将该进程唤醒。 (3)新数据尚未到达:对于相互合作的进程,如果其中一个进程需要先获得另一(合作)进程提供的数据才能运行以对数据进行处理,则是要其所需数据尚未到达,该进程只有(等待)阻塞,等到数据到达后,该进程被唤醒。 (4)无新工作可做:系统往往设置一些具有某特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来,新任务到达后,该进程被唤醒。 2.进程阻塞过程 正在执行的进程,当发现上述某事件后,由于无法继续执行,于是进程便通过调用阻塞原语block()把自己阻塞。可见,进程的阻塞是进程自身的一种主动行为。进入block过程后,由于此时该进程还处于执行状态,所以应先立即停止执行,把进程控制块中的现行状态由执行改为阻塞,并将PCB插入阻塞队列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞(等待)队列。最后,转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU环境。 3. 进程唤醒过程 当被阻塞的进程所期待的事件出现时,如I/O完成或者其所期待的数据已经到达,则由有关进程(比如,用完并释放了该I/O设备的进程)调用唤醒原语wakeup(),将等待该事件的进程唤醒。唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。 答案来源网络,供参考,希望对您有帮助

问问小秘 2019-12-02 03:05:02 0 浏览量 回答数 0

回答

本文为您介绍如何通过资源编排服务(ROS)创建资源栈。 前提条件 进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 背景信息 如果您已建好模板,请在资源编排控制台我的模板页面,选择已建好的模板,单击创建栈进入创建流程。此外,您也可以根据模板样例快速创建资源栈,详情请参见通过模板样例创建资源栈。 操作步骤 登录资源编排控制台。 在页面左上角的地域下拉列表,选择资源栈的所在地域。 在左侧导航栏选择资源栈。 在资源栈列表页面,单击创建资源栈。 在创建资源栈向导的选择模板页面,根据所需选择模板,单击下一步。 您可以选择已有模板,也可以使用示例模板。 模板为JSON格式的文本文件,使用UTF-8编码。有关模板的详情,请参见模板结构说明。您也可以使用可视化编辑器编辑模板,详情请参见可视化编辑器示例。 在创建资源栈向导的配置模板参数页面,根据控制台提示,配置资源栈名称和参数录入,单击下一步。 在创建资源栈向导的配置资源栈页面,根据控制台提示,配置资源栈策略、失败时回滚、超时设置和标签,单击下一步。 资源的创建或更新未在超时设置的时间内完成,系统自动判断该操作失败,再根据失败时回滚设置,判断是否回滚到创建或更新资源之前的状态。 在创建资源栈向导的确认页面,单击创建资源栈。 您可以在资源栈管理页面,查看当前创建的资源栈状态和信息。 本文为您介绍如何通过资源编排服务(ROS)查看资源栈。 前提条件 请确保您已创建资源栈,操作方法请参见创建资源栈。 操作步骤 登录资源编排控制台。 在页面左上角的地域下拉列表,选择资源栈的所在地域。 在左侧导航栏选择资源栈。 单击资源栈名称下面的资源栈ID。 在资源栈管理页面,您可以执行以下操作: 单击资源栈信息,查看基本信息、标签和资源栈策略。 单击事件,查看资源栈生命周期中发生的每一个事件。 单击资源,查看资源栈所包括的每一个资源的信息。 单击输出,查看创建资源栈时,您申明的需要输出的实例信息。 单击参数,查看创建资源栈时,您指定的参数,包括ROS提供的以ALIYUN::开始的内部参数。 单击模板,查看资源栈所对应的模板信息。 单击更改集,管理该资源栈下的更改集。 本文为您介绍如何通过资源编排服务(ROS)更新资源栈。 前提条件 请确保您已创建资源栈,操作方法请参见创建资源栈。 背景信息 如果您只需要修改当前的资源栈模板、资源栈配置,不需要修改资源栈的所属地域,请选择更新资源栈。 如果您需要修改当前的资源栈模板、资源栈配置、资源栈的所属地域,请选择重新创建资源栈,详情请参见重建资源栈。 操作步骤 登录资源编排控制台。 在页面左上角的地域下拉列表,选择资源栈的所在地域。 在左侧导航栏选择资源栈。 单击资源栈名称对应的右侧操作栏中的更新。 在编辑资源栈向导的配置模板参数页面,根据控制台提示,重新配置参数录入。 说明 当您更新资源栈内资源的参数信息时,请确保相关参数是允许更新的,详情请参见对应的资源类型文档中各参数说明。 如果您只修改模板参数,无需修改资源栈策略,则可以单击确认修改,结束更新资源栈操作。 单击下一步。 在创建资源栈向导的配置资源栈页面,根据控制台提示,重新配置资源栈策略、失败时回滚、超时设置和标签。 单击确认修改。 如果您需要确认更新配置,则可以单击下一步,确认配置无误后,再单击确认修改,完成更新资源栈操作。 本文为您介绍如何通过资源编排服务(ROS)重建资源栈。 前提条件 请确保您已创建资源栈,操作方法请参见创建资源栈。 背景信息 如果您只需要修改当前的资源栈模板、资源栈配置,不需要修改资源栈的所属地域,请选择更新资源栈,详情请参见更新资源栈 。 如果您需要修改当前的资源栈模板、资源栈配置、资源栈的所属地域,请选择重新创建资源栈。 操作步骤 登录资源编排控制台。 在页面左上角的地域下拉列表,选择资源栈的所在地域。 在左侧导航栏选择资源栈。 单击资源栈名称对应的右侧操作栏中的1,选择重新创建。 单击上一步。 在重新创建向导的选择模板页面,您可以重新选择已有模板或示例模板,单击下一步。 在重新创建向导的配置模板参数页面,您可以重新配置资源栈名称和参数录入,单击下一步。 在重新创建向导的配置资源栈页面,您可以重新配置资源栈策略、失败时回滚、超时设置和标签,单击下一步。 资源的创建或更新未在超时设置的时间内完成,系统自动判断该操作失败,再根据失败时回滚设置,判断是否回滚到创建或更新资源之前的状态。 在重新创建向导的确认页面,单击创建资源栈。 您可以在资源栈管理页面,查看当前重新创建的资源栈状态和信息。 本文为您介绍如何通过资源编排服务(ROS)删除资源栈。 前提条件 请确保您已创建资源栈,操作方法请参见创建资源栈。 操作步骤 登录资源编排控制台。 在页面左上角的地域下拉列表,选择资源栈的所在地域。 在左侧导航栏选择资源栈。 单击资源栈名称对应的右侧操作栏中的删除。 在确认删除资源栈页面,选择删除方式。 资源栈删除方式如下: 保留资源:如果删除,当前资源栈创建的资源将会被保留。 释放资源:如果删除,当前资源栈创建的资源将会被释放,请您谨慎操作。 单击确认。 通过本文您可以了解嵌套资源栈的结构、最佳实践、常见模板、更新行为和输出值,并了解查看嵌套资源栈及其所属的父资源栈的操作方法。 嵌套资源栈是作为其他资源栈的一部分来创建的资源栈。您可以在另一个资源栈中使用ALIYUN::ROS::Stack资源创建嵌套资源栈。 随着基础设施的发展,常见模式可合并,以便在多个模板中声明相同的组件。您可以分离这些常见组件并为其创建专用模板。然后使用模板中的资源来引用其他模板,也就是创建嵌套资源栈。 例如,您有用于大多数资源栈的负载均衡器配置。您可以为负载均衡器创建专用模板,而不是将相同的配置复制并粘贴到您的模板中。您只需使用资源从其他模板中引用该模板。 嵌套资源栈的结构 嵌套资源栈本身可以包含其他嵌套资源栈,构成一个资源栈层次结构,如下图所示。根资源栈是所有嵌套资源栈最终归属的父资源栈。此外,每个嵌套资源栈都有一个直属父资源栈。对于第一级的嵌套资源栈而言,根资源栈也是父资源栈。 资源栈A是该层次结构中所有其他嵌套资源栈的根资源栈。 对于资源栈B来说,资源栈A既是父资源栈,也是根资源栈。 对于资源栈D,资源栈C是父资源栈;而对于资源栈C来说,资源栈B是父资源栈。 嵌套资源栈 使用嵌套资源栈来声明常见组件被视为最佳做法。 某些资源栈操作(如资源栈更新等)应从根资源栈启动,而不是直接在嵌套资源栈上执行。此外,在某些情况下,嵌套资源栈会影响资源栈操作的执行。 最佳实践 资源编排之嵌套资源栈 使用嵌套资源栈来重复使用常见模板 随着您的基础设施的发展,常见模板模式可合并以便声明每个模板中的相同组件。您可以分离这些常见组件并为其创建专用模板。这样一来,您可以混合和匹配不同的模板,但使用嵌套资源栈来创建单个统一资源栈。嵌套资源栈是可创建其他资源栈的资源栈。要创建嵌套资源栈,可使用您的模板中的ALIYUN::ROS::Stack 资源来引用其他模板。 例如,您有用于大多数资源栈的负载均衡器配置。您可以为负载均衡器创建专用模板,而不是将相同的配置复制并粘贴到您的模板中。然后,您只需使用ALIYUN::ROS::Stack资源从其他模板中引用该模板。如果更新负载均衡器模板,引用该模板的任何资源栈将使用更新过的负载均衡器(仅当您更新该资源栈后)。除了简化更新之外,该方法还允许您使用专家来创建和维护您不熟悉的组件。您只需引用其模板即可。 嵌套资源栈资源的更新行为 如果模板包括一个或多个嵌套资源栈,则ROS也会为每个嵌套资源栈启动更新。这对于确定嵌套资源栈是否已修改是必要的。ROS只更新嵌套资源栈中那些在相应模板中指定了更改的资源。 使用嵌套资源栈的输出值 嵌套资源栈是您使用ALIYUN::ROS::Stack资源在其他资源栈中创建的资源栈。利用嵌套资源栈,您可从一个资源栈部署和管理所有资源。您可将来自嵌套资源栈组中的一个资源栈的输出用作该组中的另一个资源栈的输入。 查看属于父资源栈的嵌套资源栈 登录资源编排控制台。 在左侧导航栏选择资源栈。 在资源栈列表页面,单击要查看其嵌套资源栈的父资源栈的名称。 说明 如果父资源栈也是嵌套资源栈,需要勾选显示嵌套资源栈。 单击资源页签。 查找类型为ALIYUN::ROS::Stack的资源。 查看嵌套资源栈的父资源栈 登录资源编排控制台。 在左侧导航栏选择资源栈。 在资源栈列表页面,勾选显示嵌套资源栈,查看资源栈列表。 单击要查看其父资源栈的嵌套资源栈的名称。 单击资源栈信息,查看父资源栈ID。 通过本文您可以了解资源栈策略的定义,以及设置、更新和修改资源栈策略的方法。 在创建资源栈时,允许对所有资源执行所有更新操作。默认情况下,具有资源栈更新权限的任何人均可更新资源栈中的所有资源。在更新期间,一些资源可能需要中断。使用资源栈策略可以防止资源栈资源在资源栈更新过程中被意外更新或删除。资源栈策略是一个JSON/YAML文档,该文档定义可对指定资源执行的更新操作。 设置资源栈策略后,默认情况下将保护资源栈中的所有资源。要允许对特定资源进行更新,您可在资源栈策略中为这些资源指定明确的Allow语句。您只能为每个资源栈定义一个资源栈策略,但在一个策略中可以保护多个资源。资源栈策略适用于所有尝试更新资源栈的ROS用户。您不能将不同的资源栈策略与不同的用户关联。 资源栈策略仅在资源栈更新过程中适用。与RAM策略不同,它不提供访问控制。仅将资源栈策略用作故障保护功能来防止意外更新特定资源栈资源。 主题 示例资源栈策略 定义资源栈策略 设置资源栈策略 更新受保护资源 修改资源栈策略 资源栈策略示例 示例资源栈策略 如下示例资源栈策略阻止更新WebServers资源: { "Statement" : [ { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "Resource" : "" }, { "Effect" : "Deny", "Action" : "Update:", "Principal": "*", "Resource" : "LogicalResourceId/WebServers" } ] } 当您设置资源栈策略时,将默认保护所有资源。为了允许对所有资源进行更新,我们添加了一个Allow语句来允许对所有资源执行的所有操作。虽然Allow语句指定所有资源,但显式Deny语句将为具有WebServers逻辑 ID的资源覆盖前者。此Deny语句阻止对WebServers资源进行的所有更新操作。 需要Principal元素,但仅支持通配符*,这意味着语句适用于所有委托人(用户或服务等)。 说明 在资源栈更新期间,ROS自动更新依赖其他更新的资源。例如,ROS自动更新引用更新的资源。但如果这些资源与资源栈策略关联,您必须具有权限才能更新。 定义资源栈策略 定义资源栈策略在创建资源栈时,未设置资源栈策略,因此允许对所有资源执行所有更新操作。要阻止对资源栈资源执行更新操作,可定义一个资源栈策略,然后对资源栈设置该策略。资源栈策略是一个JSON/YAML文档,它定义ROS用户可以执行的ROS资源栈更新操作以及这些操作应用到的资源。在创建资源栈时,可通过指定一个包含资源栈策略的文本文件或键入该策略来设置资源栈策略。在资源栈上设置资源栈策略时,默认情况下会拒绝未显式允许的任何更新。 您可定义一个带5个元素的资源栈策略:Effect、Action、Principal、Resource 和 Condition。下面的伪代码显示了资源栈策略语法。 { "Statement" : [ { "Effect" : "Deny_or_Allow", "Action" : "update_actions", "Principal" : "*", "Resource" : "LogicalResourceId/resource_logical_ID", "Condition" : { "StringEquals_or_StringLike" : { "ResourceType" : [resource_type, ...] } } } ] } Effect 确定是拒绝还是允许对指定资源执行指定的操作。您只能指定Deny或Allow,例如: "Effect" : "Deny" 说明 如果资源栈策略包含重叠语句(同时允许和拒绝对资源进行更新),则Deny语句始终将覆盖Allow语句。要确保某一资源受到保护,请对该资源使用Deny语句。 Action 指定拒绝或允许的更新操作: Update:Modify 指定在对资源应用更改期间不会中断或有某些中断的更新操作。 Update:Delete 指定删除资源的更新操作。从资源栈模板中完全删除资源的更新都需要此操作。 Update:* 指定所有更新操作。星号是通配符,代表所有更新操作。 说明 Action还可以指定Update:Replace作为保留功能。但替换功能,目前尚未支持。 以下示例说明如何只指定修改和删除操作: "Action" : ["Update:Modify", "Update:Delete"] 要允许除某个更新操作之外的所有更新操作,请使用 NotAction。例如,要允许除Update:Delete之外的所有更新操作,请使用 NotAction,如本示例中所示: { "Statement" : [ { "Effect" : "Allow", "NotAction" : "Update:Delete", "Principal": "", "Resource" : "" } ] } Principal 指定策略应用于的实体。需要此元素,但仅支持通配符*,这意味着策略应用于所有主体。 Resource 指定将应用策略的资源的逻辑ID。要指定资源类型,请使用Condition元素。 要指定一个资源,请使用其逻辑ID。例如: "Resource" : ["LogicalResourceId/myECS"] 您可以对逻辑ID使用通配符。例如,如果您对所有相关资源使用一个通用逻辑ID前缀,则可使用通配符指定所有资源: "Resource" : ["LogicalResourceId/Prefix*"] 您还可以对资源使用Not元素。例如,要允许对所有资源执行除某个更新之外的所有更新,请使用NotResource元素保护该资源: { "Statement" : [ { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "NotResource" : "LogicalResourceId/WebServers" } ] } 设置资源栈策略时,会拒绝未显式允许的任何更新。通过允许更新WebServers资源之外的所有资源,会拒绝更新WebServers资源。 Condition 指定应用策略的资源类型。要指定特定资源的逻辑ID,请使用Resource元素。 您可以指定资源类型(如所有ECS和RDS数据库实例),如以下示例所示: { "Statement" : [ { "Effect" : "Deny", "Principal" : "", "Action" : "Update:", "Resource" : "", "Condition" : { "StringEquals" : { "ResourceType" : ["ALIYUN::ECS::Instance", "ALIYUN::RDS::DBInstance"] } } }, { "Effect" : "Allow", "Principal" : "", "Action" : "Update:", "Resource" : "" } ] } Allow语句授予对所有资源的更新权限,而Deny语句拒绝对ECS和RDS数据库实例的更新。Deny 语句始终覆盖允许操作。 您可以对资源类型使用通配符。例如,您可以使用通配符拒绝所有ALIYUN ECS资源(如实例、安全组和子网)的更新权限,示例如下: "Condition" : { "StringLike" : { "ResourceType" : ["ALIYUN::ECS::*"] } } 使用通配符时,必须使用StringLike条件。 设置资源栈策略 您可以使用控制台或ALIYUN ROS CLI在创建资源栈时应用资源栈策略。您也可以使用ALIYUN ROS CLI将资源栈策略应用于现有资源栈。应用资源栈策略后,无法将其从资源栈中删除,但您可以使用ALIUN ROS CLI修改该策略。 资源栈策略适用于所有尝试更新资源栈的ROS用户。您不能将不同的资源栈策略与不同的用户关联。 有关如何编写资源栈策略的信息,请参见定义资源栈策略。 在创建资源栈时设置资源栈策略(控制台) 登录资源编排控制台。 在左侧导航栏选择资源栈。 在资源栈列表页面,选择创建资源栈。 在创建资源栈向导的配置资源栈页面,选择资源栈策略为输入资源栈策略或上传文件。配置资源栈 配置资源栈策略。 在控制台中直接编写策略,请选择输入资源栈策略,在文本字段中直接输入资源栈策略。 在单独文件中定义策略,请选择上传文件,上传包含资源栈策略的文件。 按照创建资源栈向导提示继续配置,完成资源栈创建。 在创建资源栈时设置资源栈策略(CLI) 将aliyun ros CreateStack命令与--StackPolicyBody选项结合使用可键入修改的策略,或将此命令与--StackPolicyURL选项结合使用可指定包含策略的文件。 将aliyun ros CreateChangeSet命令与--StackPolicyBody选项结合使用可键入修改的策略,或将此命令与--StackPolicyURL选项结合使用可指定包含策略的文件。 在现有资源栈上设置资源栈策略(仅限 CLI) 将aliyun ros SetStackPolicy命令与--StackPolicyBody 选项结合使用可键入修改的策略,或将此命令与--StackPolicyURL选项结合使用可指定包含策略的文件。 说明 要将策略添加到现有资源栈中,您必须有权执行ROS SetStackPolicy 操作。 更新受保护资源 要更新受保护的资源,可创建一个覆盖资源栈策略并允许对这些资源进行更新的临时策略。在更新资源栈时指定覆盖策略。覆盖策略不会永久更改资源栈策略。 要更新保护的资源,您必须具有操作ROS接口SetStackPolicy的权限。设置ROS权限的操作方法,请参见RAM控制访问。 说明 在资源栈更新期间,ROS自动更新依赖其他更新的资源。例如,ROS自动更新引用更新的资源。如果这些资源与资源栈策略关联,则您必须具有权限才能更新。 更新受保护的资源(控制台) 登录资源编排控制台。 在左侧导航栏选择资源栈。 在资源栈列表页面,选择需要更新的资源栈,单击更新。 按照编辑资源栈向导提示进行配置,在配置资源栈页面,选择输入资源栈策略或上传文件。配置资源栈 配置临时资源栈策略。 指定临时的资源栈策略,仅本次更新生效。覆盖策略必须为您要更新的受保护资源指定Allow语句。例如,要更新所有受保护资源,可以指定允许所有更新的临时覆盖策略: { "Statement" : [ { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "Resource" : "*" } ] } 说明 ROS仅在此更新期间应用覆盖策略。覆盖策略不会永久更改资源栈策略。如果您需要修改资源栈策略,请参见修改资源栈策略 。 按照编辑资源栈向导提示继续配置,完成资源栈更新。 更新受保护资源(CLI) 将aliyun ros UpdateStack命令与--StackPolicyDuringUpdateBody选项结合使用可键入修改的策略,或将此命令与 --StackPolicyDuringUpdateURL 选项结合使用可指定包含策略的文件。 将aliyun ros CreateChangeSet命令与--StackPolicyDuringUpdateBody选项结合使用可键入修改的策略,或将此命令与--StackPolicyDuringUpdateURL选项结合使用可指定包含策略的文件。 说明 ROS仅在此更新期间应用覆盖策略。覆盖策略不会永久更改资源栈策略。要修改资源栈策略,请参见修改资源栈策略。 修改资源栈策略 要保护其他资源或从资源中删除保护,请修改资源栈策略。例如,当您将要保护的数据库添加到资源栈时,会将该数据库的Deny语句添加到资源栈策略。要修改策略,您必须有权使用SetStackPolicy操作。 修改资源栈策略(控制台) 登录资源编排控制台。 在左侧导航栏选择资源栈。 在资源栈列表中,单击需要修改的资源栈名称。 在资源栈信息页面的资源栈策略区域,单击编辑。 在修改资源栈策略页面,输入资源栈策略。修改资源栈策略 单击确认。 修改资源栈策略(CLI) 将aliyun ros SetStackPolicy命令与--StackPolicyBody选项结合使用可键入修改的策略,或将此命令与 --StackPolicyURL 选项结合使用可指定包含策略的文件。 您无法删除资源栈策略。要从所有资源删除全部保护,您可修改策略以明确允许对所有资源执行全部操作。以下策略允许对所有资源进行全部更新: { "Statement" : [ { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "Resource" : "*" } ] } 在更新资源栈时修改资源栈策略(CLI) 将aliyun ros UpdateStack命令与--StackPolicyBody选项结合使用可键入修改的策略,或将此命令与--StackPolicyURL选项结合使用可指定包含策略的文件。 将aliyun ros CreateChangeSet命令与--StackPolicyBody选项结合使用可键入修改的策略,或将此命令与--StackPolicyURL选项结合使用可指定包含策略的文件。 资源栈策略示例 以下示例策略说明如何阻止对所有资源栈资源和特定资源进行更新,并阻止特定类型的更新。 阻止对所有资源栈资源的更新 要阻止对所有资源栈资源的更新,以下策略为所有资源的所有更新操作指定 Deny 语句。 { "Statement" : [ { "Effect" : "Deny", "Action" : "Update:", "Principal": "", "Resource" : "*" } ] } 阻止对单个资源的更新 { "Statement" : [ { "Effect" : "Deny", "Action" : "Update:", "Principal": "", "Resource" : "LogicalResourceId/WebServers" }, { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "Resource" : "*" } ] } 您可以使用默认拒绝来获得与上一示例相同的结果。设置资源栈策略时,ROS会拒绝未显式允许的任何更新。以下策略允许对除WebServers资源(默认情况下,拒绝更新此资源)之外的所有资源进行的更新。 { "Statement" : [ { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "NotResource" : "LogicalResourceId/WebServers" } ] } 说明 使用默认拒绝存在风险。如果您策略中的其他位置具有Allow语句 (例如,使用通配符的 Allow 语句),则可能意外授予(原本不打算授予)对资源的更新权限。由于显示拒绝将覆盖任何允许操作,因此可以使用Deny语句确保保护资源。 阻止对资源类型的所有实例进行更新 以下策略拒绝针对RDS数据库实例资源类型的所有更新操作。使用Allow语句允许对所有其他资源栈资源进行全部更新操作。Allow语句不应用于RDS数据库实例资源,因为Deny语句始终覆盖允许操作。 { "Statement" : [ { "Effect" : "Deny", "Action" : "Update:", "Principal": "", "Resource" : "", "Condition" : { "StringEquals" : { "ResourceType" : ["ALIYUN::RDS::DBInstance"] } } }, { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "Resource" : "" } ] } 阻止对嵌套资源栈进行更新 以下策略拒绝针对ROS资源栈资源类型(嵌套资源栈)的所有更新操作。使用Allow语句允许对所有其他资源栈资源进行全部更新操作。Allow语句不会应用于ROS资源栈资源,因为Deny语句始终覆盖Allow操作。 { "Statement" : [ { "Effect" : "Deny", "Action" : "Update:", "Principal": "", "Resource" : "", "Condition" : { "StringEquals" : { "ResourceType" : ["ALIYUN::ROS::Stack"] } } }, { "Effect" : "Allow", "Action" : "Update:", "Principal": "", "Resource" : "" } ] }

1934890530796658 2020-03-24 18:33:53 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板