putRolePolicy
Adds or updates an inline policy document that is embedded in the specified IAM role.
When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using CreateRole
. You can update a role's trust policy using UpdateAssumeRolePolicy
. For more information about roles, see IAM roles in the IAM User Guide.
A role can also have a managed policy attached to it. To attach a managed policy to a role, use AttachRolePolicy
. To create a new managed policy, use CreatePolicy
. For information about policies, see Managed policies and inline policies in the IAM User Guide.
For information about the maximum number of inline policies that you can embed with a role, see IAM and STS quotas in the IAM User Guide.
Because policy documents can be large, you should use POST rather than GET when calling PutRolePolicy
. For general information about using the Query API with IAM, see Making query requests in the IAM User Guide.
Samples
fun main() {
//sampleStart
// The following command adds a permissions policy to the role named Test Role.
iamClient.putRolePolicy {
roleName = "S3Access"
policyName = "S3AccessPolicy"
policyDocument = "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}}"
}
//sampleEnd
}