IoT / Client / test_authorization
test_authorization#
- IoT.Client.test_authorization(**kwargs)#
- Tests if a specified principal is authorized to perform an IoT action on a specified resource. Use this to test and debug the authorization behavior of devices that connect to the IoT device gateway. - Requires permission to access the TestAuthorization action. - See also: AWS API Documentation - Request Syntax- response = client.test_authorization( principal='string', cognitoIdentityPoolId='string', authInfos=[ { 'actionType': 'PUBLISH'|'SUBSCRIBE'|'RECEIVE'|'CONNECT', 'resources': [ 'string', ] }, ], clientId='string', policyNamesToAdd=[ 'string', ], policyNamesToSkip=[ 'string', ] ) - Parameters:
- principal (string) – The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id). 
- cognitoIdentityPoolId (string) – The Cognito identity pool ID. 
- authInfos (list) – - [REQUIRED] - A list of authorization info objects. Simulating authorization will create a response for each - authInfoobject in the list.- (dict) – - A collection of authorization information. - actionType (string) – - The type of action for which the principal is being authorized. 
- resources (list) – [REQUIRED] - The resources for which the principal is being authorized to perform the specified action. - (string) – 
 
 
 
- clientId (string) – The MQTT client ID. 
- policyNamesToAdd (list) – - When testing custom authorization, the policies specified here are treated as if they are attached to the principal being authorized. - (string) – 
 
- policyNamesToSkip (list) – - When testing custom authorization, the policies specified here are treated as if they are not attached to the principal being authorized. - (string) – 
 
 
- Return type:
- dict 
- Returns:
- Response Syntax- { 'authResults': [ { 'authInfo': { 'actionType': 'PUBLISH'|'SUBSCRIBE'|'RECEIVE'|'CONNECT', 'resources': [ 'string', ] }, 'allowed': { 'policies': [ { 'policyName': 'string', 'policyArn': 'string' }, ] }, 'denied': { 'implicitDeny': { 'policies': [ { 'policyName': 'string', 'policyArn': 'string' }, ] }, 'explicitDeny': { 'policies': [ { 'policyName': 'string', 'policyArn': 'string' }, ] } }, 'authDecision': 'ALLOWED'|'EXPLICIT_DENY'|'IMPLICIT_DENY', 'missingContextValues': [ 'string', ] }, ] } - Response Structure- (dict) – - authResults (list) – - The authentication results. - (dict) – - The authorizer result. - authInfo (dict) – - Authorization information. - actionType (string) – - The type of action for which the principal is being authorized. 
- resources (list) – - The resources for which the principal is being authorized to perform the specified action. - (string) – 
 
 
- allowed (dict) – - The policies and statements that allowed the specified action. - policies (list) – - A list of policies that allowed the authentication. - (dict) – - Describes an IoT policy. - policyName (string) – - The policy name. 
- policyArn (string) – - The policy ARN. 
 
 
 
- denied (dict) – - The policies and statements that denied the specified action. - implicitDeny (dict) – - Information that implicitly denies the authorization. When a policy doesn’t explicitly deny or allow an action on a resource it is considered an implicit deny. - policies (list) – - Policies that don’t contain a matching allow or deny statement for the specified action on the specified resource. - (dict) – - Describes an IoT policy. - policyName (string) – - The policy name. 
- policyArn (string) – - The policy ARN. 
 
 
 
- explicitDeny (dict) – - Information that explicitly denies the authorization. - policies (list) – - The policies that denied the authorization. - (dict) – - Describes an IoT policy. - policyName (string) – - The policy name. 
- policyArn (string) – - The policy ARN. 
 
 
 
 
- authDecision (string) – - The final authorization decision of this scenario. Multiple statements are taken into account when determining the authorization decision. An explicit deny statement can override multiple allow statements. 
- missingContextValues (list) – - Contains any missing context values found while evaluating policy. - (string) – 
 
 
 
 
 
 - Exceptions- IoT.Client.exceptions.ResourceNotFoundException
- IoT.Client.exceptions.InvalidRequestException
- IoT.Client.exceptions.ThrottlingException
- IoT.Client.exceptions.UnauthorizedException
- IoT.Client.exceptions.ServiceUnavailableException
- IoT.Client.exceptions.InternalFailureException
- IoT.Client.exceptions.LimitExceededException