AttachRolePolicyCommand

Attaches the specified managed policy to the specified IAM role. When you attach a managed policy to a role, the managed policy becomes part of the role's permission (access) policy.

You cannot use a managed policy as the role's trust 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  .

Use this operation to attach a managed policy to a role. To embed an inline policy in a role, use PutRolePolicy  . For more information about policies, see Managed policies and inline policies  in the IAM User Guide.

As a best practice, you can validate your IAM policies. To learn more, see Validating IAM policies  in the IAM User Guide.

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { IAMClient, AttachRolePolicyCommand } from "@aws-sdk/client-iam"; // ES Modules import
// const { IAMClient, AttachRolePolicyCommand } = require("@aws-sdk/client-iam"); // CommonJS import
const client = new IAMClient(config);
const input = { // AttachRolePolicyRequest
  RoleName: "STRING_VALUE", // required
  PolicyArn: "STRING_VALUE", // required
};
const command = new AttachRolePolicyCommand(input);
const response = await client.send(command);
// {};

Example Usage

 Loading code editor

AttachRolePolicyCommand Input

See AttachRolePolicyCommandInput for more details

Parameter
Type
Description
PolicyArn
Required
string | undefined

The Amazon Resource Name (ARN) of the IAM policy you want to attach.

For more information about ARNs, see Amazon Resource Names (ARNs)  in the Amazon Web Services General Reference.

RoleName
Required
string | undefined

The name (friendly name, not ARN) of the role to attach the policy to.

This parameter allows (through its regex pattern ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.-

AttachRolePolicyCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.

Throws

Name
Fault
Details
InvalidInputException
client

The request was rejected because an invalid or out-of-range value was supplied for an input parameter.

LimitExceededException
client

The request was rejected because it attempted to create resources beyond the current Amazon Web Services account limits. The error message describes the limit exceeded.

NoSuchEntityException
client

The request was rejected because it referenced a resource entity that does not exist. The error message describes the resource.

PolicyNotAttachableException
client

The request failed because Amazon Web Services service role policies can only be attached to the service-linked role for that service.

ServiceFailureException
server

The request processing has failed because of an unknown error, exception or failure.

UnmodifiableEntityException
client

The request was rejected because service-linked roles are protected Amazon Web Services resources. Only the service that depends on the service-linked role can modify or delete the role on your behalf. The error message includes the name of the service that depends on this service-linked role. You must request the change through that service.

IAMServiceException
Base exception class for all service exceptions from IAM service.