调用ListStackOperationRisks接口检测资源栈相关操作的风险提示。

本接口目前支持以下情况:

  • 删除资源栈操作可能涉及的高风险资源,并返回每个资源对应的风险原因。
  • 创建资源栈操作可能出现的创建失败的风险,暂时支持检测调用者可能缺失的权限。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String ListStackOperationRisks

系统规定参数。取值:ListStackOperationRisks

RegionId String cn-hangzhou

资源栈所属的地域ID。

您可以调用DescribeRegions查看最新的阿里云地域列表。

StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691****

资源栈ID。

OperationType String DeleteStack

需要检测的操作类型。

取值:

  • DeleteStack:检测删除资源栈操作涉及的高风险资源。
  • CreateStack:创建资源栈操作可能出现的创建失败的风险,暂时支持检测调用者可能缺失的权限。
ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求的幂等性。该值由客户端生成,并且必须是全局唯一的。

长度不超过64个字符,可包含英文字母、数字、短划线(-)和下划线(_)。

更多详情,请参见如何保证幂等性

RamRoleName String test-role

RAM角色名称。

  • 如果指定RAM角色,ROS将根据RAM角色的权限创建资源栈,使用角色的凭证代表用户进行接口调用。
  • 如果不指定RAM角色,ROS将使用当前账号相关权限创建资源栈。

RAM角色名称最大长度为64个字节。

RetainAllResources Boolean false

是否保留该资源栈下的所有资源。

取值:

  • true:保留。
  • false(默认值):不保留。
说明 当OperationType取值为DeleteStack时该参数有效。
RetainResources.N String instance

需要保留的资源。

TemplateBody String {"ROSTemplateFormatVersion":"2015-09-01"}

模板主体的结构。长度为1~524,288个字节。如果长度较长,则建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免因URL过长而导致请求失败。

说明 您必须且仅能指定TemplateBody、TemplateURL、TemplateId或TemplateScratchId其中一个参数。
TemplateURL String oss://ros-template/demo

包含模板主体的文件的位置。URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储空间(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的模板,模板的最大长度为524,288个字节。如未指定OSS地域,默认与RegionId取值相同。

说明 您必须且仅能指定TemplateBody、TemplateURL、TemplateId或TemplateScratchId其中一个参数。
TemplateId String 5ecd1e10-b0e9-4389-a565-e4c15efc****

模板ID。支持共享模板和私有模板。

说明 您必须且仅能指定TemplateBody、TemplateURL、TemplateId或TemplateScratchId其中一个参数。
TemplateVersion String v1

模板版本。

说明 当您指定TemplateId时,本参数才生效。

返回数据

名称 类型 示例值 描述
RequestId String 72108E7A-E874-4A5E-B22C-A61E94AD12CD

请求ID。

RiskResources Array of Resource

风险信息。

LogicalResourceId String MySG

资源逻辑ID,即模板定义的资源名称。

PhysicalResourceId String sg-bp1dpioafqphedg9****

资源物理ID,即实际的资源ID。

RequestId String DF4296CF-F45F-4845-A72B-BE617601DB25

对资源进行风险检测失败时的请求ID。

说明 当风险检测正常时,不返回该参数。
ResourceType String ALIYUN::ECS::SecurityGroup

资源类型。

Code String NoPermission

对资源进行风险检测失败时的错误码。

说明 当风险检测正常时,不返回该参数。
Message String You are not authorized to complete this action.

对资源进行风险检测失败时的错误信息。

说明 当风险检测正常时,不返回该参数。
RiskType String Referenced

风险类型。取值:

  • Referenced:当前资源被其他资源引用。
  • MaybeReferenced:当前资源可能被其他资源引用。
  • AdditionalRiskCheckRequired:嵌套资源栈需要额外进行风险检测。
  • OperationIgnored:当前操作对当前资源不生效。
Reason String There are some ECS instances (i-bp18el96s4wq635e****) depending on the security group.

风险原因。

MissingPolicyActions Array of String ["ecs:DescribeInstance", "ros:CreateStack"]

调用者所属账号缺少的资源操作列表。

示例

请求示例

http(s)://ros.aliyuncs.com/?Action=ListStackOperationRisks
&OperationType=DeleteStack
&RegionId=cn-hangzhou
&StackId=4a6c9851-3b0f-4f5f-b4ca-a14bf691****	
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<ListStackOperationRisksResponse>
    <RequestId>72108E7A-E874-4A5E-B22C-A61E94AD12CD</RequestId>
    <RiskResources>
        <LogicalResourceId>MySG</LogicalResourceId>
        <PhysicalResourceId>sg-bp1dpioafqphedg9****</PhysicalResourceId>
        <RequestId>DF4296CF-F45F-4845-A72B-BE617601DB25</RequestId>
        <ResourceType>ALIYUN::ECS::SecurityGroup</ResourceType>
        <Code>NoPermission</Code>
        <Message>You are not authorized to complete this action.</Message>
        <RiskType>Referenced</RiskType>
        <Reason>There are some ECS instances (i-bp18el96s4wq635e****) depending on the security group.</Reason>
    </RiskResources>
    <MissingPolicyActions>["ecs:DescribeInstance", "ros:CreateStack"]</MissingPolicyActions>
</ListStackOperationRisksResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "72108E7A-E874-4A5E-B22C-A61E94AD12CD",
  "RiskResources" : [ {
    "LogicalResourceId" : "MySG",
    "PhysicalResourceId" : "sg-bp1dpioafqphedg9****",
    "RequestId" : "DF4296CF-F45F-4845-A72B-BE617601DB25",
    "ResourceType" : "ALIYUN::ECS::SecurityGroup",
    "Code" : "NoPermission",
    "Message" : "You are not authorized to complete this action.",
    "RiskType" : "Referenced",
    "Reason" : "There are some ECS instances (i-bp18el96s4wq635e****) depending on the security group."
  } ],
  "MissingPolicyActions" : [ "[\"ecs:DescribeInstance\", \"ros:CreateStack\"]" ]
}

错误码

访问错误中心查看更多错误码。