AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

TestAuthorization

测试是否授权指定委托人对指定资源执行 AWS IoT 操作。使用它来测试和调试连接到 AWS IoT 设备网关的设备的授权行为。

https

请求语法:

POST /test-authorization?clientId=clientId Content-type: application/json { "principal": "string", "cognitoIdentityPoolId": "string", "authInfos": [ { "actionType": "string", "resources": [ "string" ] } ], "policyNamesToAdd": [ "string" ], "policyNamesToSkip": [ "string" ] }

URI 请求参数:

名称

类型

请求?

描述

clientId

ClientId

MQTT 客户端 ID。

请求正文参数:

名称

类型

请求?

描述

principal

委托人

委托人。

cognitoIdentityPoolId

CognitoIdentityPoolId

Cognito 身份池 ID。

authInfos

AuthInfos

授权信息对象的列表。模拟授权将为列表中的各个 authInfo 对象创建响应。

policyNamesToAdd

PolicyNames

测试自定义授权时,此处指定的策略将被视为已附加到要授权的委托人。

policyNamesToSkip

PolicyNames

测试自定义授权时,此处指定的策略将被视为没有附加到要授权的委托人。

响应语法:

Content-type: application/json { "authResults": [ { "authInfo": { "actionType": "string", "resources": [ "string" ] }, "allowed": { "policies": [ { "policyName": "string", "policyArn": "string" } ] }, "denied": { "implicitDeny": { "policies": [ { "policyName": "string", "policyArn": "string" } ] }, "explicitDeny": { "policies": [ { "policyName": "string", "policyArn": "string" } ] } }, "authDecision": "string", "missingContextValues": [ "string" ] } ] }

响应正文参数:

名称

类型

请求?

描述

authResults

AuthResults

身份验证结果。

错误:

ResourceNotFoundException

指定的资源不存在。

HTTP 响应代码:404

InvalidRequestException

请求的内容无效。例如,UpdateJobExecution 请求包含无效状态详细信息时,将返回此代码。消息包含有关错误的详细信息。

HTTP 响应代码:400

ThrottlingException

速率超过限制。

HTTP 响应代码:429

UnauthorizedException

您没有权限执行此操作。

HTTP 响应代码:401

ServiceUnavailableException

服务暂时不可用。

HTTP 响应代码:503

InternalFailureException

出现意外错误。

HTTP 响应代码:500

LimitExceededException

已超出限制。

HTTP 响应代码:410

cli

摘要:

aws iot test-authorization \ [--principal <value>] \ [--cognito-identity-pool-id <value>] \ --auth-infos <value> \ [--client-id <value>] \ [--policy-names-to-add <value>] \ [--policy-names-to-skip <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "principal": "string", "cognitoIdentityPoolId": "string", "authInfos": [ { "actionType": "string", "resources": [ "string" ] } ], "clientId": "string", "policyNamesToAdd": [ "string" ], "policyNamesToSkip": [ "string" ] }

cli-input-json 字段:

名称

类型

描述

principal

字符串

委托人。

cognitoIdentityPoolId

字符串

Cognito 身份池 ID。

authInfos

列表

成员:AuthInfo

授权信息对象的列表。模拟授权将为列表中的各个 authInfo 对象创建响应。

actionType

字符串

向委托人授权的操作的类型。

枚举:PUBLISH | SUBSCRIBE | RECEIVE | CONNECT

resources

列表

成员:Resource

授权委托人执行指定操作的资源。

clientId

字符串

MQTT 客户端 ID。

policyNamesToAdd

列表

成员:PolicyName

java 类:java.util.List

测试自定义授权时,此处指定的策略将被视为已附加到要授权的委托人。

policyNamesToSkip

列表

成员:PolicyName

java 类:java.util.List

测试自定义授权时,此处指定的策略将被视为没有附加到要授权的委托人。

输出:

{ "authResults": [ { "authInfo": { "actionType": "string", "resources": [ "string" ] }, "allowed": { "policies": [ { "policyName": "string", "policyArn": "string" } ] }, "denied": { "implicitDeny": { "policies": [ { "policyName": "string", "policyArn": "string" } ] }, "explicitDeny": { "policies": [ { "policyName": "string", "policyArn": "string" } ] } }, "authDecision": "string", "missingContextValues": [ "string" ] } ] }

cli 输出字段:

名称

类型

描述

authResults

列表

成员:AuthResult

身份验证结果。

authInfo

AuthInfo

授权信息。

actionType

字符串

向委托人授权的操作的类型。

枚举:PUBLISH | SUBSCRIBE | RECEIVE | CONNECT

resources

列表

成员:Resource

授权委托人执行指定操作的资源。

已允许

已允许

允许指定操作的策略和语句。

策略

列表

成员:Policy

java 类:java.util.List

允许身份验证的策略的列表。

policyName

字符串

最大长度:128,最小长度:1

模式:[w+=,.@-]+

策略名称。

policyArn

字符串

策略 ARN。

denied

Denied

拒绝指定操作的策略和语句。

implicitDeny

ImplicitDeny

隐式拒绝授权的信息。当策略没有明确拒绝或允许资源上的操作时,将其视为隐式拒绝。

策略

列表

成员:Policy

java 类:java.util.List

对指定资源上的指定操作不包含匹配的允许或拒绝语句的策略。

policyName

字符串

最大长度:128,最小长度:1

模式:[w+=,.@-]+

策略名称。

policyArn

字符串

策略 ARN。

explicitDeny

ExplicitDeny

明确拒绝授权的信息。

策略

列表

成员:Policy

java 类:java.util.List

拒绝授权的策略。

policyName

字符串

最大长度:128,最小长度:1

模式:[w+=,.@-]+

策略名称。

policyArn

字符串

策略 ARN。

authDecision

字符串

此场景的最终授权决定。确定授权决定时要考虑到多个语句。明确拒绝语句可以覆盖多个允许语句。

枚举:ALLOWED | EXPLICIT_DENY | IMPLICIT_DENY

missingContextValues

列表

成员:MissingContextValue

java 类:java.util.List

包含在评估策略时缺少的任何上下文值。

错误:

ResourceNotFoundException

指定的资源不存在。

InvalidRequestException

请求的内容无效。例如,UpdateJobExecution 请求包含无效状态详细信息时,将返回此代码。消息包含有关错误的详细信息。

ThrottlingException

速率超过限制。

UnauthorizedException

您没有权限执行此操作。

ServiceUnavailableException

服务暂时不可用。

InternalFailureException

出现意外错误。

LimitExceededException

已超出限制。