View a markdown version of this page

PutComponentPolicy - EC2 Image Builder
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

PutComponentPolicy

Applies a policy to a component. The preferred way to share resources is with the RAM API CreateResourceShare. If you use the PutComponentPolicy operation instead, you must also call the RAM API PromoteResourceShareCreatedFromPolicy. Otherwise, the resource isn't visible to the principals that it's shared with.

Request Syntax

PUT /PutComponentPolicy HTTP/1.1 Content-type: application/json { "componentArn": "string", "policy": "string" }

URI Request Parameters

The request does not use any URI parameters.

Request Body

The request accepts the following data in JSON format.

componentArn

The Amazon Resource Name (ARN) of the component that this policy should be applied to.

Type: String

Pattern: ^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?|third-party):component/[a-z0-9-_]+/[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$

Required: Yes

policy

The policy to apply.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 30000.

Required: Yes

Response Syntax

HTTP/1.1 200 Content-type: application/json { "componentArn": "string", "requestId": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

componentArn

The Amazon Resource Name (ARN) of the component that this policy was applied to.

Type: String

Pattern: ^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws(?:-[a-z-]+)?|third-party):component/[a-z0-9-_]+/[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$

requestId

The request ID that uniquely identifies this request.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 1024.

Errors

For information about the errors that are common to all actions, see Common Error Types.

CallRateLimitExceededException

You have exceeded the permitted request rate for the Amazon EC2 APIs that Image Builder calls on your behalf. Retry with an increasing or variable delay between requests.

HTTP Status Code: 429

ClientException

A generic client error. This error usually indicates that the request failed a validation check, such as when a downstream service rejects a configured value.

HTTP Status Code: 400

ForbiddenException

You are not authorized to perform the requested operation.

HTTP Status Code: 403

InvalidParameterValueException

The value that you provided for the specified parameter is invalid.

HTTP Status Code: 400

InvalidRequestException

The request is malformed or otherwise invalid. Verify the request and try again.

HTTP Status Code: 400

ResourceNotFoundException

At least one of the resources referenced by your request does not exist.

HTTP Status Code: 404

ServiceException

An internal server error occurred while Image Builder processed the request. Retrying the request may succeed.

HTTP Status Code: 500

ServiceUnavailableException

The service is unable to process your request at this time.

HTTP Status Code: 503

Examples

Share a component with another account

The following example applies a resource policy that grants another account permission to get and list the component.

Sample Request

PUT /PutComponentPolicy HTTP/1.1 Content-type: application/json { "componentArn": "arn:aws:imagebuilder:us-west-2:111122223333:component/my-shared-component/1.0.0/1", "policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"arn:aws:iam::444455556666:root\"}, \"Action\": [\"imagebuilder:GetComponent\", \"imagebuilder:ListComponents\"], \"Resource\": [\"arn:aws:imagebuilder:us-west-2:111122223333:component/my-shared-component/1.0.0/1\"]}]}" }

Sample Response

HTTP/1.1 200 Content-type: application/json { "requestId": "ad5a3a66-95c0-4eb5-b34e-f28980256275", "componentArn": "arn:aws:imagebuilder:us-west-2:111122223333:component/my-shared-component/1.0.0/1" }

See Also

For more information about using this API in one of the language-specific Amazon SDKs, see the following: