Creates an AWS IoT policy.
The created policy is the default version for the policy. This operation creates a policy version with a version identifier of 1 and sets 1 as the policy’s default version.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-policy
--policy-name <value>
--policy-document <value>
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--policy-name
(string)
The policy name.
--policy-document
(string)
The JSON document that describes the policy. policyDocument must have a minimum length of 1, with a maximum length of 2048, excluding whitespace.
--tags
(list)
Metadata which can be used to manage the policy.
Note
For URI Request parameters use format: …key1=value1&key2=value2…
For the CLI command-line parameter use format: &&tags “key1=value1&key2=value2…”
For the cli-input-json file use format: “tags”: “key1=value1&key2=value2…”
(structure)
A set of key/value pairs that are used to manage the resource.
Key -> (string)
The tag’s key.
Value -> (string)
The tag’s value.
Shorthand Syntax:
Key=string,Value=string ...
JSON Syntax:
[
{
"Key": "string",
"Value": "string"
}
...
]
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To create an AWS IoT policy
The following create-policy
example creates an AWS IoT policy named TemperatureSensorPolicy. The policy.json
file contains statements that allow AWS IoT policy actions.
aws iot create-policy \
--policy-name TemperatureSensorPolicy \
--policy-document file://policy.json
Contents of policy.json
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-west-2:123456789012:topic/topic_1",
"arn:aws:iot:us-west-2:123456789012:topic/topic_2"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_1",
"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_2"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-west-2:123456789012:client/basicPubSub"
]
}
]
}
Output:
{
"policyName": "TemperatureSensorPolicy",
"policyArn": "arn:aws:iot:us-west-2:123456789012:policy/TemperatureSensorPolicy",
"policyDocument": "{
\"Version\": \"2012-10-17\",
\"Statement\": [
{
\"Effect\": \"Allow\",
\"Action\": [
\"iot:Publish\",
\"iot:Receive\"
],
\"Resource\": [
\"arn:aws:iot:us-west-2:123456789012:topic/topic_1\",
\"arn:aws:iot:us-west-2:123456789012:topic/topic_2\"
]
},
{
\"Effect\": \"Allow\",
\"Action\": [
\"iot:Subscribe\"
],
\"Resource\": [
\"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_1\",
\"arn:aws:iot:us-west-2:123456789012:topicfilter/topic_2\"
]
},
{
\"Effect\": \"Allow\",
\"Action\": [
\"iot:Connect\"
],
\"Resource\": [
\"arn:aws:iot:us-west-2:123456789012:client/basicPubSub\"
]
}
]
}",
"policyVersionId": "1"
}
For more information, see AWS IoT Policies in the AWS IoT Developers Guide.
policyName -> (string)
The policy name.
policyArn -> (string)
The policy ARN.
policyDocument -> (string)
The JSON document that describes the policy.
policyVersionId -> (string)
The policy version ID.