Class DataLakeSettings


  • public class DataLakeSettings
    extends com.pulumi.resources.CustomResource
    Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions. > **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html). ## Example Usage ### Data Lake Admins
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lakeformation.DataLakeSettings;
     import com.pulumi.aws.lakeformation.DataLakeSettingsArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new DataLakeSettings("example", DataLakeSettingsArgs.builder()
                 .admins(            
                     test.arn(),
                     testAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ### Create Default Permissions
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lakeformation.DataLakeSettings;
     import com.pulumi.aws.lakeformation.DataLakeSettingsArgs;
     import com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;
     import com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new DataLakeSettings("example", DataLakeSettingsArgs.builder()
                 .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()
                     .permissions(                
                         "SELECT",
                         "ALTER",
                         "DROP")
                     .principal(test.arn())
                     .build())
                 .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()
                     .permissions("ALL")
                     .principal(testAwsIamRole.arn())
                     .build())
                 .admins(            
                     test.arn(),
                     testAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ### Enable EMR access to Lake Formation resources
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lakeformation.DataLakeSettings;
     import com.pulumi.aws.lakeformation.DataLakeSettingsArgs;
     import com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;
     import com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new DataLakeSettings("example", DataLakeSettingsArgs.builder()
                 .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()
                     .permissions(                
                         "SELECT",
                         "ALTER",
                         "DROP")
                     .principal(test.arn())
                     .build())
                 .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()
                     .permissions("ALL")
                     .principal(testAwsIamRole.arn())
                     .build())
                 .admins(            
                     test.arn(),
                     testAwsIamRole.arn())
                 .allowExternalDataFiltering(true)
                 .externalDataFilteringAllowLists(            
                     current.accountId(),
                     thirdParty.accountId())
                 .authorizedSessionTagValueLists("Amazon EMR")
                 .allowFullTableExternalDataAccess(true)
                 .build());
     
         }
     }
     
     
    ### Change Cross Account Version
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lakeformation.DataLakeSettings;
     import com.pulumi.aws.lakeformation.DataLakeSettingsArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new DataLakeSettings("example", DataLakeSettingsArgs.builder()
                 .parameters(Map.of("CROSS_ACCOUNT_VERSION", "3"))
                 .build());
     
         }
     }
     
     
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Detail

      • DataLakeSettings

        public DataLakeSettings​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • DataLakeSettings

        public DataLakeSettings​(java.lang.String name,
                                @Nullable
                                DataLakeSettingsArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • DataLakeSettings

        public DataLakeSettings​(java.lang.String name,
                                @Nullable
                                DataLakeSettingsArgs args,
                                @Nullable
                                com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • admins

        public com.pulumi.core.Output<java.util.List<java.lang.String>> admins()
        Returns:
        Set of ARNs of AWS Lake Formation principals (IAM users or roles).
      • allowExternalDataFiltering

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> allowExternalDataFiltering()
        Returns:
        Whether to allow Amazon EMR clusters to access data managed by Lake Formation.
      • allowFullTableExternalDataAccess

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> allowFullTableExternalDataAccess()
        Returns:
        Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.
      • authorizedSessionTagValueLists

        public com.pulumi.core.Output<java.util.List<java.lang.String>> authorizedSessionTagValueLists()
        Returns:
        Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it.
      • catalogId

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> catalogId()
        Returns:
        Identifier for the Data Catalog. By default, the account ID.
      • createDatabaseDefaultPermissions

        public com.pulumi.core.Output<java.util.List<DataLakeSettingsCreateDatabaseDefaultPermission>> createDatabaseDefaultPermissions()
        Returns:
        Up to three configuration blocks of principal permissions for default create database permissions. Detailed below.
      • createTableDefaultPermissions

        public com.pulumi.core.Output<java.util.List<DataLakeSettingsCreateTableDefaultPermission>> createTableDefaultPermissions()
        Returns:
        Up to three configuration blocks of principal permissions for default create table permissions. Detailed below.
      • externalDataFilteringAllowLists

        public com.pulumi.core.Output<java.util.List<java.lang.String>> externalDataFilteringAllowLists()
        Returns:
        A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.
      • parameters

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> parameters()
        Returns:
        Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`.
      • readOnlyAdmins

        public com.pulumi.core.Output<java.util.List<java.lang.String>> readOnlyAdmins()
        Returns:
        Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • trustedResourceOwners

        public com.pulumi.core.Output<java.util.List<java.lang.String>> trustedResourceOwners()
        Returns:
        List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared.
      • get

        public static DataLakeSettings get​(java.lang.String name,
                                           com.pulumi.core.Output<java.lang.String> id,
                                           @Nullable
                                           DataLakeSettingsState state,
                                           @Nullable
                                           com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.