@pulumi/aws
Version:
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
168 lines • 6.32 kB
JavaScript
;
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPermissionsOutput = exports.getPermissions = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* Get permissions for a principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3. Permissions are granted to a principal, in a Data Catalog, relative to a Lake Formation resource, which includes the Data Catalog, databases, tables, LF-tags, and LF-tag policies. For more information, see [Security and Access Control to Metadata and Data in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html).
*
* > **NOTE:** This data source deals with explicitly granted permissions. Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. For more information, see [Implicit Lake Formation Permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/implicit-permissions.html).
*
* ## Example Usage
*
* ### Permissions For A Lake Formation S3 Resource
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = aws.lakeformation.getPermissions({
* principal: workflowRole.arn,
* dataLocation: {
* arn: testAwsLakeformationResource.arn,
* },
* });
* ```
*
* ### Permissions For A Glue Catalog Database
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = aws.lakeformation.getPermissions({
* principal: workflowRole.arn,
* database: {
* name: testAwsGlueCatalogDatabase.name,
* catalogId: "110376042874",
* },
* });
* ```
*
* ### Permissions For Tag-Based Access Control
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = aws.lakeformation.getPermissions({
* principal: workflowRole.arn,
* lfTagPolicy: {
* resourceType: "DATABASE",
* expressions: [
* {
* key: "Team",
* values: ["Sales"],
* },
* {
* key: "Environment",
* values: [
* "Dev",
* "Production",
* ],
* },
* ],
* },
* });
* ```
*/
function getPermissions(args, opts) {
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
return pulumi.runtime.invoke("aws:lakeformation/getPermissions:getPermissions", {
"catalogId": args.catalogId,
"catalogResource": args.catalogResource,
"dataCellsFilter": args.dataCellsFilter,
"dataLocation": args.dataLocation,
"database": args.database,
"lfTag": args.lfTag,
"lfTagPolicy": args.lfTagPolicy,
"principal": args.principal,
"region": args.region,
"table": args.table,
"tableWithColumns": args.tableWithColumns,
}, opts);
}
exports.getPermissions = getPermissions;
/**
* Get permissions for a principal to access metadata in the Data Catalog and data organized in underlying data storage such as Amazon S3. Permissions are granted to a principal, in a Data Catalog, relative to a Lake Formation resource, which includes the Data Catalog, databases, tables, LF-tags, and LF-tag policies. For more information, see [Security and Access Control to Metadata and Data in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html).
*
* > **NOTE:** This data source deals with explicitly granted permissions. Lake Formation grants implicit permissions to data lake administrators, database creators, and table creators. For more information, see [Implicit Lake Formation Permissions](https://docs.aws.amazon.com/lake-formation/latest/dg/implicit-permissions.html).
*
* ## Example Usage
*
* ### Permissions For A Lake Formation S3 Resource
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = aws.lakeformation.getPermissions({
* principal: workflowRole.arn,
* dataLocation: {
* arn: testAwsLakeformationResource.arn,
* },
* });
* ```
*
* ### Permissions For A Glue Catalog Database
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = aws.lakeformation.getPermissions({
* principal: workflowRole.arn,
* database: {
* name: testAwsGlueCatalogDatabase.name,
* catalogId: "110376042874",
* },
* });
* ```
*
* ### Permissions For Tag-Based Access Control
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = aws.lakeformation.getPermissions({
* principal: workflowRole.arn,
* lfTagPolicy: {
* resourceType: "DATABASE",
* expressions: [
* {
* key: "Team",
* values: ["Sales"],
* },
* {
* key: "Environment",
* values: [
* "Dev",
* "Production",
* ],
* },
* ],
* },
* });
* ```
*/
function getPermissionsOutput(args, opts) {
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
return pulumi.runtime.invokeOutput("aws:lakeformation/getPermissions:getPermissions", {
"catalogId": args.catalogId,
"catalogResource": args.catalogResource,
"dataCellsFilter": args.dataCellsFilter,
"dataLocation": args.dataLocation,
"database": args.database,
"lfTag": args.lfTag,
"lfTagPolicy": args.lfTagPolicy,
"principal": args.principal,
"region": args.region,
"table": args.table,
"tableWithColumns": args.tableWithColumns,
}, opts);
}
exports.getPermissionsOutput = getPermissionsOutput;
//# sourceMappingURL=getPermissions.js.map