AttachRLSPolicy - Lake Formation
Services or capabilities described in AWS documentation might vary by Region. To see the differences applicable to the AWS European Sovereign Cloud Region, see the AWS European Sovereign Cloud User Guide.

AttachRLSPolicy

Attaches a row-level security policy to a resource for a principal. When the principal queries the resource, AWS Lake Formation applies the policy's filter expression so that only the permitted rows are returned.

Request Syntax

POST /AttachRLSPolicy HTTP/1.1 Content-type: application/json { "Condition": { "Expression": "string" }, "Name": "string", "Principal": { "DataLakePrincipalIdentifier": "string" }, "Resource": { "Catalog": { "Id": "string" }, "Database": { "CatalogId": "string", "Name": "string" }, "DataCellsFilter": { "DatabaseName": "string", "Name": "string", "TableCatalogId": "string", "TableName": "string" }, "DataLocation": { "CatalogId": "string", "ResourceArn": "string" }, "LFTag": { "CatalogId": "string", "TagKey": "string", "TagValues": [ "string" ] }, "LFTagExpression": { "CatalogId": "string", "Name": "string" }, "LFTagPolicy": { "CatalogId": "string", "Expression": [ { "TagKey": "string", "TagValues": [ "string" ] } ], "ExpressionName": "string", "ResourceType": "string" }, "RLSPolicy": { "CatalogId": "string", "Name": "string" }, "Table": { "CatalogId": "string", "DatabaseName": "string", "Name": "string", "TableWildcard": { } }, "TableWithColumns": { "CatalogId": "string", "ColumnNames": [ "string" ], "ColumnWildcard": { "ExcludedColumnNames": [ "string" ] }, "DatabaseName": "string", "Name": "string" } }, "SetDefault": boolean }

URI Request Parameters

The request does not use any URI parameters.

Request Body

The request accepts the following data in JSON format.

Condition

A Lake Formation condition, which applies to the row-level security policy attachment and contains an expression.

Type: Condition object

Required: No

Name

The name of the row-level security policy to attach.

Type: String

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

Pattern: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*

Required: Yes

Principal

The principal to which the row-level security policy applies.

Type: DataLakePrincipal object

Required: No

Resource

The resource to which the row-level security policy is attached.

Type: Resource object

Required: Yes

SetDefault

Indicates whether this policy becomes the default row-level security policy for the resource. The default policy applies to all principals by default.

Type: Boolean

Required: No

Response Syntax

HTTP/1.1 200

Response Elements

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

Errors

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

AccessDeniedException

Access to a resource was denied.

Message

A message describing the problem.

HTTP Status Code: 403

AlreadyExistsException

A resource to be created or added already exists.

Message

A message describing the problem.

HTTP Status Code: 400

ConcurrentModificationException

Two processes are trying to modify a resource simultaneously.

Message

A message describing the problem.

HTTP Status Code: 400

EntityNotFoundException

A specified entity does not exist.

Message

A message describing the problem.

HTTP Status Code: 400

InternalServiceException

An internal service error occurred.

Message

A message describing the problem.

HTTP Status Code: 500

InvalidInputException

The input provided was not valid.

Message

A message describing the problem.

HTTP Status Code: 400

OperationTimeoutException

The operation timed out.

Message

A message describing the problem.

HTTP Status Code: 400

ResourceNumberLimitExceededException

A resource numerical limit was exceeded.

Message

A message describing the problem.

HTTP Status Code: 400

Examples

Request example

This example illustrates one usage of AttachRLSPolicy.

{ "Name": "sales-east-region", "Resource": { "Table": { "DatabaseName": "sales", "Name": "orders" } }, "Principal": { "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:role/Analyst" }, "SetDefault": false }

See Also

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