Class: Aws::SecurityLake::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs
Defined in:
gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb

Overview

An API client for SecurityLake. To construct a client, you need to configure a :region and :credentials.

client = Aws::SecurityLake::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

For details on configuring region and credentials see the developer guide.

See #initialize for a full list of supported configuration options.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#api_requests, #stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, clear_plugins, define, new, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :plugins (Array<Seahorse::Client::Plugin>) — default: []]

    A list of plugins to apply to the client. Each plugin is either a class name or an instance of a plugin class.

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • Aws::Credentials - Used for configuring static, non-refreshing credentials.

    • Aws::SharedCredentials - Used for loading static credentials from a shared file, such as ~/.aws/config.

    • Aws::AssumeRoleCredentials - Used when you need to assume a role.

    • Aws::AssumeRoleWebIdentityCredentials - Used when you need to assume a role after providing credentials via the web.

    • Aws::SSOCredentials - Used for loading credentials from AWS SSO using an access token generated from aws login.

    • Aws::ProcessCredentials - Used for loading credentials from a process that outputs to stdout.

    • Aws::InstanceProfileCredentials - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • Aws::ECSCredentials - Used for loading credentials from instances running in ECS.

    • Aws::CognitoIdentityCredentials - Used for loading credentials from the Cognito Identity service.

    When :credentials are not configured directly, the following locations will be searched for credentials:

    • Aws.config[:credentials]
    • The :access_key_id, :secret_access_key, :session_token, and :account_id options.
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'], ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
    • ~/.aws/credentials
    • ~/.aws/config
    • EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of Aws::InstanceProfileCredentials or Aws::ECSCredentials to enable retries and extended timeouts. Instance profile credential fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] to true.
  • :region (required, String)

    The AWS region to connect to. The configured :region is used to determine the service :endpoint. When not passed, a default :region is searched for in the following locations:

    • Aws.config[:region]
    • ENV['AWS_REGION']
    • ENV['AMAZON_REGION']
    • ENV['AWS_DEFAULT_REGION']
    • ~/.aws/credentials
    • ~/.aws/config
  • :access_key_id (String)
  • :account_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false.

  • :adaptive_retry_wait_to_fill (Boolean) — default: true

    Used only in adaptive retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a RetryCapacityNotAvailableError and will not retry instead of sleeping.

  • :client_side_monitoring (Boolean) — default: false

    When true, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1"

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types.

  • :correct_clock_skew (Boolean) — default: true

    Used only in standard and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks.

  • :defaults_mode (String) — default: "legacy"

    See DefaultsModeConfiguration for a list of the accepted modes and the configuration defaults that are included.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :disable_request_compression (Boolean) — default: false

    When set to 'true' the request body will not be compressed for supported operations.

  • :endpoint (String, URI::HTTPS, URI::HTTP)

    Normally you should not configure the :endpoint option directly. This is normally constructed from the :region option. Configuring :endpoint is normally reserved for connecting to test or custom endpoints. The endpoint should be a URI formatted like:

    'http://example.com'
    'https://example.com'
    'http://example.com:123'
    
  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to true, endpoint discovery will be enabled for operations when available.

  • :ignore_configured_endpoint_urls (Boolean)

    Setting to true disables use of endpoint URLs provided via environment variables and the shared configuration file.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the :logger at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :max_attempts (Integer) — default: 3

    An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in standard and adaptive retry modes.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used.

  • :request_min_compression_size_bytes (Integer) — default: 10240

    The minimum size in bytes that triggers compression for request bodies. The value must be non-negative integer value between 0 and 10485780 bytes inclusive.

  • :retry_backoff (Proc)

    A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the legacy retry mode.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the legacy retry mode.

    @see https://www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the legacy retry mode.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_mode (String) — default: "legacy"

    Specifies which retry algorithm to use. Values are:

    • legacy - The pre-existing retry behavior. This is default value if no retry mode is provided.

    • standard - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make.

    • adaptive - An experimental retry mode that includes all the functionality of standard mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future.

  • :sdk_ua_app_id (String)

    A unique and opaque application ID that is appended to the User-Agent header as app/sdk_ua_app_id. It should have a maximum length of 50. This variable is sourced from environment variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.

  • :secret_access_key (String)
  • :session_token (String)
  • :sigv4a_signing_region_set (Array)

    A list of regions that should be signed with SigV4a signing. When not passed, a default :sigv4a_signing_region_set is searched for in the following locations:

    • Aws.config[:sigv4a_signing_region_set]
    • ENV['AWS_SIGV4A_SIGNING_REGION_SET']
    • ~/.aws/config
  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :telemetry_provider (Aws::Telemetry::TelemetryProviderBase) — default: Aws::Telemetry::NoOpTelemetryProvider

    Allows you to provide a telemetry provider, which is used to emit telemetry data. By default, uses NoOpTelemetryProvider which will not record or emit any telemetry data. The SDK supports the following telemetry providers:

    • OpenTelemetry (OTel) - To use the OTel provider, install and require the opentelemetry-sdk gem and then, pass in an instance of a Aws::Telemetry::OTelProvider for telemetry provider.
  • :token_provider (Aws::TokenProvider)

    A Bearer Token Provider. This can be an instance of any one of the following classes:

    • Aws::StaticTokenProvider - Used for configuring static, non-refreshing tokens.

    • Aws::SSOTokenProvider - Used for loading tokens from AWS SSO using an access token generated from aws login.

    When :token_provider is not configured directly, the Aws::TokenProviderChain will be used to search for tokens configured for your profile in shared configuration files.

  • :use_dualstack_endpoint (Boolean)

    When set to true, dualstack enabled endpoints (with .aws TLD) will be used if available.

  • :use_fips_endpoint (Boolean)

    When set to true, fips compatible endpoints will be used if available. When a fips region is used, the region is normalized and this config is set to true.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request.

  • :endpoint_provider (Aws::SecurityLake::EndpointProvider)

    The endpoint provider used to resolve endpoints. Any object that responds to #resolve_endpoint(parameters) where parameters is a Struct similar to Aws::SecurityLake::EndpointParameters.

  • :http_continue_timeout (Float) — default: 1

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to nil which disables this behaviour. This value can safely be set per request on the session.

  • :http_idle_timeout (Float) — default: 5

    The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_open_timeout (Float) — default: 15

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like 'http://proxy.com:123'.

  • :http_read_timeout (Float) — default: 60

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_wire_trace (Boolean) — default: false

    When true, HTTP debug output will be sent to the :logger.

  • :on_chunk_received (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the response body is received. It provides three arguments: the chunk, the number of bytes received, and the total number of bytes in the response (or nil if the server did not send a content-length).

  • :on_chunk_sent (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the request body is sent. It provides three arguments: the chunk, the number of bytes read from the body, and the total number of bytes in the body.

  • :raise_response_errors (Boolean) — default: true

    When true, response errors are raised.

  • :ssl_ca_bundle (String)

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_directory (String)

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_store (String)

    Sets the X509::Store to verify peer certificate.

  • :ssl_cert (OpenSSL::X509::Certificate)

    Sets a client certificate when creating http connections.

  • :ssl_key (OpenSSL::PKey)

    Sets a client key when creating http connections.

  • :ssl_timeout (Float)

    Sets the SSL timeout in seconds

  • :ssl_verify_peer (Boolean) — default: true

    When true, SSL peer certificates are verified when establishing a connection.



444
445
446
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 444

def initialize(*args)
  super
end

Instance Method Details

#create_aws_log_source(params = {}) ⇒ Types::CreateAwsLogSourceResponse

Adds a natively supported Amazon Web Services service as an Amazon Security Lake source. Enables source types for member accounts in required Amazon Web Services Regions, based on the parameters you specify. You can choose any source type in any Region for either accounts that are part of a trusted organization or standalone accounts. Once you add an Amazon Web Services service as a source, Security Lake starts collecting logs and events from it.

You can use this API only to enable natively supported Amazon Web Services services as a source. Use CreateCustomLogSource to enable data collection from a custom source.

Examples:

Request syntax with placeholder values


resp = client.create_aws_log_source({
  sources: [ # required
    {
      accounts: ["AwsAccountId"],
      regions: ["Region"], # required
      source_name: "ROUTE53", # required, accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
      source_version: "AwsLogSourceVersion",
    },
  ],
})

Response structure


resp.failed #=> Array
resp.failed[0] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :sources (required, Array<Types::AwsLogSourceConfiguration>)

    Specify the natively-supported Amazon Web Services service to add as a source in Security Lake.

Returns:

See Also:



492
493
494
495
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 492

def create_aws_log_source(params = {}, options = {})
  req = build_request(:create_aws_log_source, params)
  req.send_request(options)
end

#create_custom_log_source(params = {}) ⇒ Types::CreateCustomLogSourceResponse

Adds a third-party custom source in Amazon Security Lake, from the Amazon Web Services Region where you want to create a custom source. Security Lake can collect logs and events from third-party custom sources. After creating the appropriate IAM role to invoke Glue crawler, use this API to add a custom source name in Security Lake. This operation creates a partition in the Amazon S3 bucket for Security Lake as the target location for log files from the custom source. In addition, this operation also creates an associated Glue table and an Glue crawler.

Examples:

Request syntax with placeholder values


resp = client.create_custom_log_source({
  configuration: { # required
    crawler_configuration: { # required
      role_arn: "RoleArn", # required
    },
    provider_identity: { # required
      external_id: "ExternalId", # required
      principal: "AwsPrincipal", # required
    },
  },
  event_classes: ["OcsfEventClass"],
  source_name: "CustomLogSourceName", # required
  source_version: "CustomLogSourceVersion",
})

Response structure


resp.source.attributes.crawler_arn #=> String
resp.source.attributes.database_arn #=> String
resp.source.attributes.table_arn #=> String
resp.source.provider.location #=> String
resp.source.provider.role_arn #=> String
resp.source.source_name #=> String
resp.source.source_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configuration (required, Types::CustomLogSourceConfiguration)

    The configuration used for the third-party custom source.

  • :event_classes (Array<String>)

    The Open Cybersecurity Schema Framework (OCSF) event classes which describes the type of data that the custom source will send to Security Lake. The supported event classes are:

    • ACCESS_ACTIVITY

    • FILE_ACTIVITY

    • KERNEL_ACTIVITY

    • KERNEL_EXTENSION

    • MEMORY_ACTIVITY

    • MODULE_ACTIVITY

    • PROCESS_ACTIVITY

    • REGISTRY_KEY_ACTIVITY

    • REGISTRY_VALUE_ACTIVITY

    • RESOURCE_ACTIVITY

    • SCHEDULED_JOB_ACTIVITY

    • SECURITY_FINDING

    • ACCOUNT_CHANGE

    • AUTHENTICATION

    • AUTHORIZATION

    • ENTITY_MANAGEMENT_AUDIT

    • DHCP_ACTIVITY

    • NETWORK_ACTIVITY

    • DNS_ACTIVITY

    • FTP_ACTIVITY

    • HTTP_ACTIVITY

    • RDP_ACTIVITY

    • SMB_ACTIVITY

    • SSH_ACTIVITY

    • CONFIG_STATE

    • INVENTORY_INFO

    • EMAIL_ACTIVITY

    • API_ACTIVITY

    • CLOUD_API

  • :source_name (required, String)

    Specify the name for a third-party custom source. This must be a Regionally unique value. The sourceName you enter here, is used in the LogProviderRole name which follows the convention AmazonSecurityLake-Provider-{name of the custom source}-{region}. You must use a CustomLogSource name that is shorter than or equal to 20 characters. This ensures that the LogProviderRole name is below the 64 character limit.

  • :source_version (String)

    Specify the source version for the third-party custom source, to limit log collection to a specific version of custom data source.

Returns:

See Also:



621
622
623
624
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 621

def create_custom_log_source(params = {}, options = {})
  req = build_request(:create_custom_log_source, params)
  req.send_request(options)
end

#create_data_lake(params = {}) ⇒ Types::CreateDataLakeResponse

Initializes an Amazon Security Lake instance with the provided (or default) configuration. You can enable Security Lake in Amazon Web Services Regions with customized settings before enabling log collection in Regions. To specify particular Regions, configure these Regions using the configurations parameter. If you have already enabled Security Lake in a Region when you call this command, the command will update the Region if you provide new configuration parameters. If you have not already enabled Security Lake in the Region when you call this API, it will set up the data lake in the Region with the specified configurations.

When you enable Security Lake, it starts ingesting security data after the CreateAwsLogSource call and after you create subscribers using the CreateSubscriber API. This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also enables all the existing settings and resources that it stores or maintains for your Amazon Web Services account in the current Region, including security log and event data. For more information, see the Amazon Security Lake User Guide.

Examples:

Request syntax with placeholder values


resp = client.create_data_lake({
  configurations: [ # required
    {
      encryption_configuration: {
        kms_key_id: "String",
      },
      lifecycle_configuration: {
        expiration: {
          days: 1,
        },
        transitions: [
          {
            days: 1,
            storage_class: "DataLakeStorageClass",
          },
        ],
      },
      region: "Region", # required
      replication_configuration: {
        regions: ["Region"],
        role_arn: "RoleArn",
      },
    },
  ],
  meta_store_manager_role_arn: "RoleArn", # required
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Response structure


resp.data_lakes #=> Array
resp.data_lakes[0].create_status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"
resp.data_lakes[0].data_lake_arn #=> String
resp.data_lakes[0].encryption_configuration.kms_key_id #=> String
resp.data_lakes[0].lifecycle_configuration.expiration.days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions #=> Array
resp.data_lakes[0].lifecycle_configuration.transitions[0].days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions[0].storage_class #=> String
resp.data_lakes[0].region #=> String
resp.data_lakes[0].replication_configuration.regions #=> Array
resp.data_lakes[0].replication_configuration.regions[0] #=> String
resp.data_lakes[0].replication_configuration.role_arn #=> String
resp.data_lakes[0].s3_bucket_arn #=> String
resp.data_lakes[0].update_status.exception.code #=> String
resp.data_lakes[0].update_status.exception.reason #=> String
resp.data_lakes[0].update_status.request_id #=> String
resp.data_lakes[0].update_status.status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configurations (required, Array<Types::DataLakeConfiguration>)

    Specify the Region or Regions that will contribute data to the rollup region.

  • :meta_store_manager_role_arn (required, String)

    The Amazon Resource Name (ARN) used to create and update the Glue table. This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.

  • :tags (Array<Types::Tag>)

    An array of objects, one for each tag to associate with the data lake configuration. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.

Returns:

See Also:



727
728
729
730
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 727

def create_data_lake(params = {}, options = {})
  req = build_request(:create_data_lake, params)
  req.send_request(options)
end

#create_data_lake_exception_subscription(params = {}) ⇒ Struct

Creates the specified notification subscription in Amazon Security Lake for the organization you specify. The notification subscription is created for exceptions that cannot be resolved by Security Lake automatically.

Examples:

Request syntax with placeholder values


resp = client.create_data_lake_exception_subscription({
  exception_time_to_live: 1,
  notification_endpoint: "SafeString", # required
  subscription_protocol: "SubscriptionProtocol", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :exception_time_to_live (Integer)

    The expiration period and time-to-live (TTL). It is the duration of time until which the exception message remains.

  • :notification_endpoint (required, String)

    The Amazon Web Services account where you want to receive exception notifications.

  • :subscription_protocol (required, String)

    The subscription protocol to which exception notifications are posted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



762
763
764
765
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 762

def create_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:create_data_lake_exception_subscription, params)
  req.send_request(options)
end

#create_data_lake_organization_configuration(params = {}) ⇒ Struct

Automatically enables Amazon Security Lake for new member accounts in your organization. Security Lake is not automatically enabled for any existing member accounts in your organization.

Examples:

Request syntax with placeholder values


resp = client.create_data_lake_organization_configuration({
  auto_enable_new_account: [
    {
      region: "Region", # required
      sources: [ # required
        {
          source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
          source_version: "AwsLogSourceVersion",
        },
      ],
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

  • (Struct)

    Returns an empty response.

See Also:



797
798
799
800
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 797

def create_data_lake_organization_configuration(params = {}, options = {})
  req = build_request(:create_data_lake_organization_configuration, params)
  req.send_request(options)
end

#create_subscriber(params = {}) ⇒ Types::CreateSubscriberResponse

Creates a subscriber for accounts that are already enabled in Amazon Security Lake. You can create a subscriber with access to data in the current Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.create_subscriber({
  access_types: ["LAKEFORMATION"], # accepts LAKEFORMATION, S3
  sources: [ # required
    {
      aws_log_source: {
        source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
        source_version: "AwsLogSourceVersion",
      },
      custom_log_source: {
        attributes: {
          crawler_arn: "AmazonResourceName",
          database_arn: "AmazonResourceName",
          table_arn: "AmazonResourceName",
        },
        provider: {
          location: "S3URI",
          role_arn: "RoleArn",
        },
        source_name: "CustomLogSourceName",
        source_version: "CustomLogSourceVersion",
      },
    },
  ],
  subscriber_description: "DescriptionString",
  subscriber_identity: { # required
    external_id: "ExternalId", # required
    principal: "AwsPrincipal", # required
  },
  subscriber_name: "CreateSubscriberRequestSubscriberNameString", # required
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Response structure


resp.subscriber.access_types #=> Array
resp.subscriber.access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscriber.created_at #=> Time
resp.subscriber.resource_share_arn #=> String
resp.subscriber.resource_share_name #=> String
resp.subscriber.role_arn #=> String
resp.subscriber.s3_bucket_arn #=> String
resp.subscriber.sources #=> Array
resp.subscriber.sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscriber.sources[0].aws_log_source.source_version #=> String
resp.subscriber.sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscriber.sources[0].custom_log_source.provider.location #=> String
resp.subscriber.sources[0].custom_log_source.provider.role_arn #=> String
resp.subscriber.sources[0].custom_log_source.source_name #=> String
resp.subscriber.sources[0].custom_log_source.source_version #=> String
resp.subscriber.subscriber_arn #=> String
resp.subscriber.subscriber_description #=> String
resp.subscriber.subscriber_endpoint #=> String
resp.subscriber.subscriber_id #=> String
resp.subscriber.subscriber_identity.external_id #=> String
resp.subscriber.subscriber_identity.principal #=> String
resp.subscriber.subscriber_name #=> String
resp.subscriber.subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscriber.updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :access_types (Array<String>)

    The Amazon S3 or Lake Formation access type.

  • :sources (required, Array<Types::LogSourceResource>)

    The supported Amazon Web Services services from which logs and events are collected. Security Lake supports log and event collection for natively supported Amazon Web Services services.

  • :subscriber_description (String)

    The description for your subscriber account in Security Lake.

  • :subscriber_identity (required, Types::AwsIdentity)

    The Amazon Web Services identity used to access your data.

  • :subscriber_name (required, String)

    The name of your Security Lake subscriber account.

  • :tags (Array<Types::Tag>)

    An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.

Returns:

See Also:



904
905
906
907
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 904

def create_subscriber(params = {}, options = {})
  req = build_request(:create_subscriber, params)
  req.send_request(options)
end

#create_subscriber_notification(params = {}) ⇒ Types::CreateSubscriberNotificationResponse

Notifies the subscriber when new data is written to the data lake for the sources that the subscriber consumes in Security Lake. You can create only one subscriber notification per subscriber.

Examples:

Request syntax with placeholder values


resp = client.create_subscriber_notification({
  configuration: { # required
    https_notification_configuration: {
      authorization_api_key_name: "String",
      authorization_api_key_value: "String",
      endpoint: "HttpsNotificationConfigurationEndpointString", # required
      http_method: "POST", # accepts POST, PUT
      target_role_arn: "RoleArn", # required
    },
    sqs_notification_configuration: {
    },
  },
  subscriber_id: "UUID", # required
})

Response structure


resp.subscriber_endpoint #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configuration (required, Types::NotificationConfiguration)

    Specify the configuration using which you want to create the subscriber notification.

  • :subscriber_id (required, String)

    The subscriber ID for the notification subscription.

Returns:

See Also:



949
950
951
952
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 949

def create_subscriber_notification(params = {}, options = {})
  req = build_request(:create_subscriber_notification, params)
  req.send_request(options)
end

#delete_aws_log_source(params = {}) ⇒ Types::DeleteAwsLogSourceResponse

Removes a natively supported Amazon Web Services service as an Amazon Security Lake source. You can remove a source for one or more Regions. When you remove the source, Security Lake stops collecting data from that source in the specified Regions and accounts, and subscribers can no longer consume new data from the source. However, subscribers can still consume data that Security Lake collected from the source before removal.

You can choose any source type in any Amazon Web Services Region for either accounts that are part of a trusted organization or standalone accounts.

Examples:

Request syntax with placeholder values


resp = client.delete_aws_log_source({
  sources: [ # required
    {
      accounts: ["AwsAccountId"],
      regions: ["Region"], # required
      source_name: "ROUTE53", # required, accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
      source_version: "AwsLogSourceVersion",
    },
  ],
})

Response structure


resp.failed #=> Array
resp.failed[0] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :sources (required, Array<Types::AwsLogSourceConfiguration>)

    Specify the natively-supported Amazon Web Services service to remove as a source in Security Lake.

Returns:

See Also:



996
997
998
999
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 996

def delete_aws_log_source(params = {}, options = {})
  req = build_request(:delete_aws_log_source, params)
  req.send_request(options)
end

#delete_custom_log_source(params = {}) ⇒ Struct

Removes a custom log source from Amazon Security Lake, to stop sending data from the custom source to Security Lake.

Examples:

Request syntax with placeholder values


resp = client.delete_custom_log_source({
  source_name: "CustomLogSourceName", # required
  source_version: "CustomLogSourceVersion",
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :source_name (required, String)

    The source name of custom log source that you want to delete.

  • :source_version (String)

    The source version for the third-party custom source. You can limit the custom source removal to the specified source version.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1024
1025
1026
1027
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1024

def delete_custom_log_source(params = {}, options = {})
  req = build_request(:delete_custom_log_source, params)
  req.send_request(options)
end

#delete_data_lake(params = {}) ⇒ Struct

When you disable Amazon Security Lake from your account, Security Lake is disabled in all Amazon Web Services Regions and it stops collecting data from your sources. Also, this API automatically takes steps to remove the account from Security Lake. However, Security Lake retains all of your existing settings and the resources that it created in your Amazon Web Services account in the current Amazon Web Services Region.

The DeleteDataLake operation does not delete the data that is stored in your Amazon S3 bucket, which is owned by your Amazon Web Services account. For more information, see the Amazon Security Lake User Guide.

Examples:

Request syntax with placeholder values


resp = client.delete_data_lake({
  regions: ["Region"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :regions (required, Array<String>)

    The list of Regions where Security Lake is enabled.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1061
1062
1063
1064
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1061

def delete_data_lake(params = {}, options = {})
  req = build_request(:delete_data_lake, params)
  req.send_request(options)
end

#delete_data_lake_exception_subscription(params = {}) ⇒ Struct

Deletes the specified notification subscription in Amazon Security Lake for the organization you specify.

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1075
1076
1077
1078
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1075

def delete_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:delete_data_lake_exception_subscription, params)
  req.send_request(options)
end

#delete_data_lake_organization_configuration(params = {}) ⇒ Struct

Turns off automatic enablement of Amazon Security Lake for member accounts that are added to an organization in Organizations. Only the delegated Security Lake administrator for an organization can perform this operation. If the delegated Security Lake administrator performs this operation, new member accounts won't automatically contribute data to the data lake.

Examples:

Request syntax with placeholder values


resp = client.delete_data_lake_organization_configuration({
  auto_enable_new_account: [
    {
      region: "Region", # required
      sources: [ # required
        {
          source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
          source_version: "AwsLogSourceVersion",
        },
      ],
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1113
1114
1115
1116
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1113

def delete_data_lake_organization_configuration(params = {}, options = {})
  req = build_request(:delete_data_lake_organization_configuration, params)
  req.send_request(options)
end

#delete_subscriber(params = {}) ⇒ Struct

Deletes the subscription permission and all notification settings for accounts that are already enabled in Amazon Security Lake. When you run DeleteSubscriber, the subscriber will no longer consume data from Security Lake and the subscriber is removed. This operation deletes the subscriber and removes access to data in the current Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.delete_subscriber({
  subscriber_id: "UUID", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :subscriber_id (required, String)

    A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1141
1142
1143
1144
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1141

def delete_subscriber(params = {}, options = {})
  req = build_request(:delete_subscriber, params)
  req.send_request(options)
end

#delete_subscriber_notification(params = {}) ⇒ Struct

Deletes the specified subscription notification in Amazon Security Lake for the organization you specify.

Examples:

Request syntax with placeholder values


resp = client.delete_subscriber_notification({
  subscriber_id: "UUID", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :subscriber_id (required, String)

    The ID of the Security Lake subscriber account.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1164
1165
1166
1167
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1164

def delete_subscriber_notification(params = {}, options = {})
  req = build_request(:delete_subscriber_notification, params)
  req.send_request(options)
end

#deregister_data_lake_delegated_administrator(params = {}) ⇒ Struct

Deletes the Amazon Security Lake delegated administrator account for the organization. This API can only be called by the organization management account. The organization management account cannot be the delegated administrator account.

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1180
1181
1182
1183
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1180

def deregister_data_lake_delegated_administrator(params = {}, options = {})
  req = build_request(:deregister_data_lake_delegated_administrator, params)
  req.send_request(options)
end

#get_data_lake_exception_subscription(params = {}) ⇒ Types::GetDataLakeExceptionSubscriptionResponse

Retrieves the protocol and endpoint that were provided when subscribing to Amazon SNS topics for exception notifications.

Examples:

Response structure


resp.exception_time_to_live #=> Integer
resp.notification_endpoint #=> String
resp.subscription_protocol #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



1204
1205
1206
1207
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1204

def get_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:get_data_lake_exception_subscription, params)
  req.send_request(options)
end

#get_data_lake_organization_configuration(params = {}) ⇒ Types::GetDataLakeOrganizationConfigurationResponse

Retrieves the configuration that will be automatically set up for accounts added to the organization after the organization has onboarded to Amazon Security Lake. This API does not take input parameters.

Examples:

Response structure


resp. #=> Array
resp.[0].region #=> String
resp.[0].sources #=> Array
resp.[0].sources[0].source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.[0].sources[0].source_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



1230
1231
1232
1233
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1230

def get_data_lake_organization_configuration(params = {}, options = {})
  req = build_request(:get_data_lake_organization_configuration, params)
  req.send_request(options)
end

#get_data_lake_sources(params = {}) ⇒ Types::GetDataLakeSourcesResponse

Retrieves a snapshot of the current Region, including whether Amazon Security Lake is enabled for those accounts and which sources Security Lake is collecting data from.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.get_data_lake_sources({
  accounts: ["AwsAccountId"],
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.data_lake_arn #=> String
resp.data_lake_sources #=> Array
resp.data_lake_sources[0]. #=> String
resp.data_lake_sources[0].event_classes #=> Array
resp.data_lake_sources[0].event_classes[0] #=> String
resp.data_lake_sources[0].source_name #=> String
resp.data_lake_sources[0].source_statuses #=> Array
resp.data_lake_sources[0].source_statuses[0].resource #=> String
resp.data_lake_sources[0].source_statuses[0].status #=> String, one of "COLLECTING", "MISCONFIGURED", "NOT_COLLECTING"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :accounts (Array<String>)

    The Amazon Web Services account ID for which a static snapshot of the current Amazon Web Services Region, including enabled accounts and log sources, is retrieved.

  • :max_results (Integer)

    The maximum limit of accounts for which the static snapshot of the current Region, including enabled accounts and log sources, is retrieved.

  • :next_token (String)

    Lists if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

Returns:

See Also:



1291
1292
1293
1294
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1291

def get_data_lake_sources(params = {}, options = {})
  req = build_request(:get_data_lake_sources, params)
  req.send_request(options)
end

#get_subscriber(params = {}) ⇒ Types::GetSubscriberResponse

Retrieves the subscription information for the specified subscription ID. You can get information about a specific subscriber.

Examples:

Request syntax with placeholder values


resp = client.get_subscriber({
  subscriber_id: "UUID", # required
})

Response structure


resp.subscriber.access_types #=> Array
resp.subscriber.access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscriber.created_at #=> Time
resp.subscriber.resource_share_arn #=> String
resp.subscriber.resource_share_name #=> String
resp.subscriber.role_arn #=> String
resp.subscriber.s3_bucket_arn #=> String
resp.subscriber.sources #=> Array
resp.subscriber.sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscriber.sources[0].aws_log_source.source_version #=> String
resp.subscriber.sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscriber.sources[0].custom_log_source.provider.location #=> String
resp.subscriber.sources[0].custom_log_source.provider.role_arn #=> String
resp.subscriber.sources[0].custom_log_source.source_name #=> String
resp.subscriber.sources[0].custom_log_source.source_version #=> String
resp.subscriber.subscriber_arn #=> String
resp.subscriber.subscriber_description #=> String
resp.subscriber.subscriber_endpoint #=> String
resp.subscriber.subscriber_id #=> String
resp.subscriber.subscriber_identity.external_id #=> String
resp.subscriber.subscriber_identity.principal #=> String
resp.subscriber.subscriber_name #=> String
resp.subscriber.subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscriber.updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :subscriber_id (required, String)

    A value created by Amazon Security Lake that uniquely identifies your GetSubscriber API request.

Returns:

See Also:



1346
1347
1348
1349
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1346

def get_subscriber(params = {}, options = {})
  req = build_request(:get_subscriber, params)
  req.send_request(options)
end

#list_data_lake_exceptions(params = {}) ⇒ Types::ListDataLakeExceptionsResponse

Lists the Amazon Security Lake exceptions that you can use to find the source of problems and fix them.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_data_lake_exceptions({
  max_results: 1,
  next_token: "NextToken",
  regions: ["Region"],
})

Response structure


resp.exceptions #=> Array
resp.exceptions[0].exception #=> String
resp.exceptions[0].region #=> String
resp.exceptions[0].remediation #=> String
resp.exceptions[0].timestamp #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    Lists the maximum number of failures in Security Lake.

  • :next_token (String)

    Lists if there are more results available. The value of nextToken is a unique pagination token for each page. Repeat the call using the returned token to retrieve the next page. Keep all other arguments unchanged.

    Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

  • :regions (Array<String>)

    The Amazon Web Services Regions from which exceptions are retrieved.

Returns:

See Also:



1397
1398
1399
1400
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1397

def list_data_lake_exceptions(params = {}, options = {})
  req = build_request(:list_data_lake_exceptions, params)
  req.send_request(options)
end

#list_data_lakes(params = {}) ⇒ Types::ListDataLakesResponse

Retrieves the Amazon Security Lake configuration object for the specified Amazon Web Services Regions. You can use this operation to determine whether Security Lake is enabled for a Region.

Examples:

Request syntax with placeholder values


resp = client.list_data_lakes({
  regions: ["Region"],
})

Response structure


resp.data_lakes #=> Array
resp.data_lakes[0].create_status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"
resp.data_lakes[0].data_lake_arn #=> String
resp.data_lakes[0].encryption_configuration.kms_key_id #=> String
resp.data_lakes[0].lifecycle_configuration.expiration.days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions #=> Array
resp.data_lakes[0].lifecycle_configuration.transitions[0].days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions[0].storage_class #=> String
resp.data_lakes[0].region #=> String
resp.data_lakes[0].replication_configuration.regions #=> Array
resp.data_lakes[0].replication_configuration.regions[0] #=> String
resp.data_lakes[0].replication_configuration.role_arn #=> String
resp.data_lakes[0].s3_bucket_arn #=> String
resp.data_lakes[0].update_status.exception.code #=> String
resp.data_lakes[0].update_status.exception.reason #=> String
resp.data_lakes[0].update_status.request_id #=> String
resp.data_lakes[0].update_status.status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :regions (Array<String>)

    The list of Regions where Security Lake is enabled.

Returns:

See Also:



1443
1444
1445
1446
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1443

def list_data_lakes(params = {}, options = {})
  req = build_request(:list_data_lakes, params)
  req.send_request(options)
end

#list_log_sources(params = {}) ⇒ Types::ListLogSourcesResponse

Retrieves the log sources.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_log_sources({
  accounts: ["AwsAccountId"],
  max_results: 1,
  next_token: "NextToken",
  regions: ["Region"],
  sources: [
    {
      aws_log_source: {
        source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
        source_version: "AwsLogSourceVersion",
      },
      custom_log_source: {
        attributes: {
          crawler_arn: "AmazonResourceName",
          database_arn: "AmazonResourceName",
          table_arn: "AmazonResourceName",
        },
        provider: {
          location: "S3URI",
          role_arn: "RoleArn",
        },
        source_name: "CustomLogSourceName",
        source_version: "CustomLogSourceVersion",
      },
    },
  ],
})

Response structure


resp.next_token #=> String
resp.sources #=> Array
resp.sources[0]. #=> String
resp.sources[0].region #=> String
resp.sources[0].sources #=> Array
resp.sources[0].sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.sources[0].sources[0].aws_log_source.source_version #=> String
resp.sources[0].sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.sources[0].sources[0].custom_log_source.attributes.database_arn #=> String
resp.sources[0].sources[0].custom_log_source.attributes.table_arn #=> String
resp.sources[0].sources[0].custom_log_source.provider.location #=> String
resp.sources[0].sources[0].custom_log_source.provider.role_arn #=> String
resp.sources[0].sources[0].custom_log_source.source_name #=> String
resp.sources[0].sources[0].custom_log_source.source_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :accounts (Array<String>)

    The list of Amazon Web Services accounts for which log sources are displayed.

  • :max_results (Integer)

    The maximum number of accounts for which the log sources are displayed.

  • :next_token (String)

    If nextToken is returned, there are more results available. You can repeat the call using the returned token to retrieve the next page.

  • :regions (Array<String>)

    The list of Regions for which log sources are displayed.

  • :sources (Array<Types::LogSourceResource>)

    The list of sources for which log sources are displayed.

Returns:

See Also:



1526
1527
1528
1529
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1526

def list_log_sources(params = {}, options = {})
  req = build_request(:list_log_sources, params)
  req.send_request(options)
end

#list_subscribers(params = {}) ⇒ Types::ListSubscribersResponse

Lists all subscribers for the specific Amazon Security Lake account ID. You can retrieve a list of subscriptions associated with a specific organization or Amazon Web Services account.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_subscribers({
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.next_token #=> String
resp.subscribers #=> Array
resp.subscribers[0].access_types #=> Array
resp.subscribers[0].access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscribers[0].created_at #=> Time
resp.subscribers[0].resource_share_arn #=> String
resp.subscribers[0].resource_share_name #=> String
resp.subscribers[0].role_arn #=> String
resp.subscribers[0].s3_bucket_arn #=> String
resp.subscribers[0].sources #=> Array
resp.subscribers[0].sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscribers[0].sources[0].aws_log_source.source_version #=> String
resp.subscribers[0].sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.provider.location #=> String
resp.subscribers[0].sources[0].custom_log_source.provider.role_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.source_name #=> String
resp.subscribers[0].sources[0].custom_log_source.source_version #=> String
resp.subscribers[0].subscriber_arn #=> String
resp.subscribers[0].subscriber_description #=> String
resp.subscribers[0].subscriber_endpoint #=> String
resp.subscribers[0].subscriber_id #=> String
resp.subscribers[0].subscriber_identity.external_id #=> String
resp.subscribers[0].subscriber_identity.principal #=> String
resp.subscribers[0].subscriber_name #=> String
resp.subscribers[0].subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscribers[0].updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    The maximum number of accounts for which the configuration is displayed.

  • :next_token (String)

    If nextToken is returned, there are more results available. You can repeat the call using the returned token to retrieve the next page.

Returns:

See Also:



1592
1593
1594
1595
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1592

def list_subscribers(params = {}, options = {})
  req = build_request(:list_subscribers, params)
  req.send_request(options)
end

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

Retrieves the tags (keys and values) that are associated with an Amazon Security Lake resource: a subscriber, or the data lake configuration for your Amazon Web Services account in a particular Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  resource_arn: "AmazonResourceName", # required
})

Response structure


resp.tags #=> Array
resp.tags[0].key #=> String
resp.tags[0].value #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the Amazon Security Lake resource for which you want to retrieve the tags.

Returns:

See Also:



1626
1627
1628
1629
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1626

def list_tags_for_resource(params = {}, options = {})
  req = build_request(:list_tags_for_resource, params)
  req.send_request(options)
end

#register_data_lake_delegated_administrator(params = {}) ⇒ Struct

Designates the Amazon Security Lake delegated administrator account for the organization. This API can only be called by the organization management account. The organization management account cannot be the delegated administrator account.

Examples:

Request syntax with placeholder values


resp = client.register_data_lake_delegated_administrator({
  account_id: "SafeString", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :account_id (required, String)

    The Amazon Web Services account ID of the Security Lake delegated administrator.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1652
1653
1654
1655
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1652

def register_data_lake_delegated_administrator(params = {}, options = {})
  req = build_request(:register_data_lake_delegated_administrator, params)
  req.send_request(options)
end

#tag_resource(params = {}) ⇒ Struct

Adds or updates one or more tags that are associated with an Amazon Security Lake resource: a subscriber, or the data lake configuration for your Amazon Web Services account in a particular Amazon Web Services Region. A tag is a label that you can define and associate with Amazon Web Services resources. Each tag consists of a required tag key and an associated tag value. A tag key is a general label that acts as a category for a more specific tag value. A tag value acts as a descriptor for a tag key. Tags can help you identify, categorize, and manage resources in different ways, such as by owner, environment, or other criteria. For more information, see Tagging Amazon Security Lake resources in the Amazon Security Lake User Guide.

Examples:

Request syntax with placeholder values


resp = client.tag_resource({
  resource_arn: "AmazonResourceName", # required
  tags: [ # required
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the Amazon Security Lake resource to add or update the tags for.

  • :tags (required, Array<Types::Tag>)

    An array of objects, one for each tag (key and value) to associate with the Amazon Security Lake resource. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1702
1703
1704
1705
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1702

def tag_resource(params = {}, options = {})
  req = build_request(:tag_resource, params)
  req.send_request(options)
end

#untag_resource(params = {}) ⇒ Struct

Removes one or more tags (keys and values) from an Amazon Security Lake resource: a subscriber, or the data lake configuration for your Amazon Web Services account in a particular Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.untag_resource({
  resource_arn: "AmazonResourceName", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the Amazon Security Lake resource to remove one or more tags from.

  • :tag_keys (required, Array<String>)

    A list of one or more tag keys. For each value in the list, specify the tag key for a tag to remove from the Amazon Security Lake resource.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1734
1735
1736
1737
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1734

def untag_resource(params = {}, options = {})
  req = build_request(:untag_resource, params)
  req.send_request(options)
end

#update_data_lake(params = {}) ⇒ Types::UpdateDataLakeResponse

You can use UpdateDataLake to specify where to store your security data, how it should be encrypted at rest and for how long. You can add a Rollup Region to consolidate data from multiple Amazon Web Services Regions, replace default encryption (SSE-S3) with Customer Manged Key, or specify transition and expiration actions through storage Lifecycle management. The UpdateDataLake API works as an "upsert" operation that performs an insert if the specified item or record does not exist, or an update if it already exists. Security Lake securely stores your data at rest using Amazon Web Services encryption solutions. For more details, see Data protection in Amazon Security Lake.

For example, omitting the key encryptionConfiguration from a Region that is included in an update call that currently uses KMS will leave that Region's KMS key in place, but specifying encryptionConfiguration: {kmsKeyId: 'S3_MANAGED_KEY'} for that same Region will reset the key to S3-managed.

For more details about lifecycle management and how to update retention settings for one or more Regions after enabling Security Lake, see the Amazon Security Lake User Guide.

Examples:

Request syntax with placeholder values


resp = client.update_data_lake({
  configurations: [ # required
    {
      encryption_configuration: {
        kms_key_id: "String",
      },
      lifecycle_configuration: {
        expiration: {
          days: 1,
        },
        transitions: [
          {
            days: 1,
            storage_class: "DataLakeStorageClass",
          },
        ],
      },
      region: "Region", # required
      replication_configuration: {
        regions: ["Region"],
        role_arn: "RoleArn",
      },
    },
  ],
  meta_store_manager_role_arn: "RoleArn",
})

Response structure


resp.data_lakes #=> Array
resp.data_lakes[0].create_status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"
resp.data_lakes[0].data_lake_arn #=> String
resp.data_lakes[0].encryption_configuration.kms_key_id #=> String
resp.data_lakes[0].lifecycle_configuration.expiration.days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions #=> Array
resp.data_lakes[0].lifecycle_configuration.transitions[0].days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions[0].storage_class #=> String
resp.data_lakes[0].region #=> String
resp.data_lakes[0].replication_configuration.regions #=> Array
resp.data_lakes[0].replication_configuration.regions[0] #=> String
resp.data_lakes[0].replication_configuration.role_arn #=> String
resp.data_lakes[0].s3_bucket_arn #=> String
resp.data_lakes[0].update_status.exception.code #=> String
resp.data_lakes[0].update_status.exception.reason #=> String
resp.data_lakes[0].update_status.request_id #=> String
resp.data_lakes[0].update_status.status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configurations (required, Array<Types::DataLakeConfiguration>)

    Specifies the Region or Regions that will contribute data to the rollup region.

  • :meta_store_manager_role_arn (String)

    The Amazon Resource Name (ARN) used to create and update the Glue table. This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.

Returns:

See Also:



1834
1835
1836
1837
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1834

def update_data_lake(params = {}, options = {})
  req = build_request(:update_data_lake, params)
  req.send_request(options)
end

#update_data_lake_exception_subscription(params = {}) ⇒ Struct

Updates the specified notification subscription in Amazon Security Lake for the organization you specify.

Examples:

Request syntax with placeholder values


resp = client.update_data_lake_exception_subscription({
  exception_time_to_live: 1,
  notification_endpoint: "SafeString", # required
  subscription_protocol: "SubscriptionProtocol", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :exception_time_to_live (Integer)

    The time-to-live (TTL) for the exception message to remain. It is the duration of time until which the exception message remains.

  • :notification_endpoint (required, String)

    The account that is subscribed to receive exception notifications.

  • :subscription_protocol (required, String)

    The subscription protocol to which exception messages are posted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1866
1867
1868
1869
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1866

def update_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:update_data_lake_exception_subscription, params)
  req.send_request(options)
end

#update_subscriber(params = {}) ⇒ Types::UpdateSubscriberResponse

Updates an existing subscription for the given Amazon Security Lake account ID. You can update a subscriber by changing the sources that the subscriber consumes data from.

Examples:

Request syntax with placeholder values


resp = client.update_subscriber({
  sources: [
    {
      aws_log_source: {
        source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
        source_version: "AwsLogSourceVersion",
      },
      custom_log_source: {
        attributes: {
          crawler_arn: "AmazonResourceName",
          database_arn: "AmazonResourceName",
          table_arn: "AmazonResourceName",
        },
        provider: {
          location: "S3URI",
          role_arn: "RoleArn",
        },
        source_name: "CustomLogSourceName",
        source_version: "CustomLogSourceVersion",
      },
    },
  ],
  subscriber_description: "DescriptionString",
  subscriber_id: "UUID", # required
  subscriber_identity: {
    external_id: "ExternalId", # required
    principal: "AwsPrincipal", # required
  },
  subscriber_name: "UpdateSubscriberRequestSubscriberNameString",
})

Response structure


resp.subscriber.access_types #=> Array
resp.subscriber.access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscriber.created_at #=> Time
resp.subscriber.resource_share_arn #=> String
resp.subscriber.resource_share_name #=> String
resp.subscriber.role_arn #=> String
resp.subscriber.s3_bucket_arn #=> String
resp.subscriber.sources #=> Array
resp.subscriber.sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscriber.sources[0].aws_log_source.source_version #=> String
resp.subscriber.sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscriber.sources[0].custom_log_source.provider.location #=> String
resp.subscriber.sources[0].custom_log_source.provider.role_arn #=> String
resp.subscriber.sources[0].custom_log_source.source_name #=> String
resp.subscriber.sources[0].custom_log_source.source_version #=> String
resp.subscriber.subscriber_arn #=> String
resp.subscriber.subscriber_description #=> String
resp.subscriber.subscriber_endpoint #=> String
resp.subscriber.subscriber_id #=> String
resp.subscriber.subscriber_identity.external_id #=> String
resp.subscriber.subscriber_identity.principal #=> String
resp.subscriber.subscriber_name #=> String
resp.subscriber.subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscriber.updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :sources (Array<Types::LogSourceResource>)

    The supported Amazon Web Services services from which logs and events are collected. For the list of supported Amazon Web Services services, see the Amazon Security Lake User Guide.

  • :subscriber_description (String)

    The description of the Security Lake account subscriber.

  • :subscriber_id (required, String)

    A value created by Security Lake that uniquely identifies your subscription.

  • :subscriber_identity (Types::AwsIdentity)

    The Amazon Web Services identity used to access your data.

  • :subscriber_name (String)

    The name of the Security Lake account subscriber.

Returns:

See Also:



1967
1968
1969
1970
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1967

def update_subscriber(params = {}, options = {})
  req = build_request(:update_subscriber, params)
  req.send_request(options)
end

#update_subscriber_notification(params = {}) ⇒ Types::UpdateSubscriberNotificationResponse

Updates an existing notification method for the subscription (SQS or HTTPs endpoint) or switches the notification subscription endpoint for a subscriber.

Examples:

Request syntax with placeholder values


resp = client.update_subscriber_notification({
  configuration: { # required
    https_notification_configuration: {
      authorization_api_key_name: "String",
      authorization_api_key_value: "String",
      endpoint: "HttpsNotificationConfigurationEndpointString", # required
      http_method: "POST", # accepts POST, PUT
      target_role_arn: "RoleArn", # required
    },
    sqs_notification_configuration: {
    },
  },
  subscriber_id: "UUID", # required
})

Response structure


resp.subscriber_endpoint #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configuration (required, Types::NotificationConfiguration)

    The configuration for subscriber notification.

  • :subscriber_id (required, String)

    The subscription ID for which the subscription notification is specified.

Returns:

See Also:



2012
2013
2014
2015
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 2012

def update_subscriber_notification(params = {}, options = {})
  req = build_request(:update_subscriber_notification, params)
  req.send_request(options)
end