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
authInfo
object 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