Classification Job Creation - Amazon Macie

Classification Job Creation

The Classification Job Creation resource represents the collection of settings that define the scope and schedule for a classification job. A classification job, also referred to as a sensitive data discovery job, is a job that analyzes objects in specific Amazon S3 buckets to determine whether the objects contain sensitive data. Each job uses managed data identifiers that Amazon Macie provides and, optionally, custom data identifiers that you create.

When you create a classification job, you can configure it to address specific scenarios. For example, you can use property- or tag-based conditions to perform targeted analysis of objects that meet specific criteria. You might also define a schedule for running the job on a recurring basis, such as every day or a specific day of each week or month. This can be helpful if you want to monitor an S3 bucket for the presence of sensitive data, or align the analysis of a bucket with periodic updates to the bucket.

You can use the Classification Job Creation resource to create and define the settings for a new classification job. Note that you can't change any settings for a classification job after you create it. This helps ensure that you have an immutable history of sensitive data findings and discovery results for data privacy and protection audits or investigations that you perform.

URI

/jobs

HTTP Methods

POST

Operation ID: CreateClassificationJob

Creates and defines the settings for a classification job.

Responses
Status Code Response Model Description
200 CreateClassificationJobResponse

The request succeeded. The specified job was created.

400 ValidationException

The request failed because it contains a syntax error.

402 ServiceQuotaExceededException

The request failed because fulfilling the request would exceed one or more service quotas for your account.

403 AccessDeniedException

The request was denied because you don't have sufficient access to the specified resource.

404 ResourceNotFoundException

The request failed because the specified resource wasn't found.

409 ConflictException

The request failed because it conflicts with the current state of the specified resource.

429 ThrottlingException

The request failed because you sent too many requests during a certain amount of time.

500 InternalServerException

The request failed due to an unknown internal server error, exception, or failure.

Schemas

Request Bodies

Example POST

{ "customDataIdentifierIds": [ "string" ], "scheduleFrequency": { "dailySchedule": { }, "weeklySchedule": { "dayOfWeek": enum }, "monthlySchedule": { "dayOfMonth": integer } }, "samplingPercentage": integer, "clientToken": "string", "name": "string", "description": "string", "initialRun": boolean, "jobType": enum, "s3JobDefinition": { "bucketDefinitions": [ { "accountId": "string", "buckets": [ "string" ] } ], "scoping": { "excludes": { "and": [ { "simpleScopeTerm": { "comparator": enum, "values": [ "string" ], "key": enum }, "tagScopeTerm": { "comparator": enum, "tagValues": [ { "value": "string", "key": "string" } ], "key": "string", "target": enum } } ] }, "includes": { "and": [ { "simpleScopeTerm": { "comparator": enum, "values": [ "string" ], "key": enum }, "tagScopeTerm": { "comparator": enum, "tagValues": [ { "value": "string", "key": "string" } ], "key": "string", "target": enum } } ] } } }, "tags": { } }

Response Bodies

Example CreateClassificationJobResponse

{ "jobId": "string", "jobArn": "string" }

Example ValidationException

{ "message": "string" }

Example ServiceQuotaExceededException

{ "message": "string" }

Example AccessDeniedException

{ "message": "string" }

Example ResourceNotFoundException

{ "message": "string" }

Example ConflictException

{ "message": "string" }

Example ThrottlingException

{ "message": "string" }

Example InternalServerException

{ "message": "string" }

Properties

AccessDeniedException

Provides information about an error that occurred due to insufficient access to a specified resource.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

ConflictException

Provides information about an error that occurred due to a versioning conflict for a specified resource.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

CreateClassificationJobRequest

Specifies the scope, schedule, and other settings for a classification job. You can't change any settings for a classification job after you create it. This helps ensure that you have an immutable history of sensitive data findings and discovery results for data privacy and protection audits or investigations.

Property Type Required Description
customDataIdentifierIds

Array of type string

False

The custom data identifiers to use for data analysis and classification.

scheduleFrequency

JobScheduleFrequency

False

The recurrence pattern for running the job. To run the job only once, don't specify a value for this property and set the value for the jobType property to ONE_TIME.

samplingPercentage

integer

Format: int32

False

The sampling depth, as a percentage, to apply when processing objects. This value determines the percentage of eligible objects that the job analyzes. If this value is less than 100, Amazon Macie selects the objects to analyze at random, up to the specified percentage, and analyzes all the data in those objects.

clientToken

string

True

A unique, case-sensitive token that you provide to ensure the idempotency of the request.

name

string

True

A custom name for the job. The name can contain as many as 500 characters.

description

string

False

A custom description of the job. The description can contain as many as 200 characters.

initialRun

boolean

False

Specifies whether to analyze all existing, eligible objects immediately after the job is created.

jobType

JobType

True

The schedule for running the job. Valid values are:

  • ONE_TIME - Run the job only once. If you specify this value, don't specify a value for the scheduleFrequency property.

  • SCHEDULED - Run the job on a daily, weekly, or monthly basis. If you specify this value, use the scheduleFrequency property to define the recurrence pattern for the job.

s3JobDefinition

S3JobDefinition

True

The S3 buckets that contain the objects to analyze, and the scope of that analysis.

tags

TagMap

False

A map of key-value pairs that specifies the tags to associate with the job.

A job can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.

CreateClassificationJobResponse

Provides information about a classification job that was created in response to a request.

Property Type Required Description
jobId

string

False

The unique identifier for the job.

jobArn

string

False

The Amazon Resource Name (ARN) of the job.

DailySchedule

Specifies that a classification job runs once a day, every day. This is an empty object.

InternalServerException

Provides information about an error that occurred due to an unknown internal server error, exception, or failure.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

JobComparator

The operator to use in a condition. Valid values are:

  • EQ

  • GT

  • GTE

  • LT

  • LTE

  • NE

  • CONTAINS

JobScheduleFrequency

Specifies the recurrence pattern for running a classification job.

Property Type Required Description
dailySchedule

DailySchedule

False

Specifies a daily recurrence pattern for running the job.

weeklySchedule

WeeklySchedule

False

Specifies a weekly recurrence pattern for running the job.

monthlySchedule

MonthlySchedule

False

Specifies a monthly recurrence pattern for running the job.

JobScopeTerm

Specifies a property- or tag-based condition that defines criteria for including or excluding objects from a classification job.

Property Type Required Description
simpleScopeTerm

SimpleScopeTerm

False

A property-based condition that defines a property, operator, and one or more values for including or excluding an object from the job.

tagScopeTerm

TagScopeTerm

False

A tag-based condition that defines the operator and tag keys or tag key and value pairs for including or excluding an object from the job.

JobScopingBlock

Specifies one or more property- and tag-based conditions that define criteria for including or excluding objects from a classification job. If you specify more than one condition, Amazon Macie uses an AND operator to join the conditions.

Property Type Required Description
and

Array of type JobScopeTerm

False

An array of conditions, one for each condition that determines which objects to include or exclude from the job.

JobType

The schedule for running a classification job. Valid values are:

  • ONE_TIME

  • SCHEDULED

MonthlySchedule

Specifies a monthly recurrence pattern for running a classification job.

Property Type Required Description
dayOfMonth

integer

Format: int32

False

The numeric day of the month when Amazon Macie runs the job. This value can be an integer from 1 through 31.

If this value exceeds the number of days in a certain month, Macie runs the job on the last day of that month. For example, if this value is 31 and a month has only 30 days, Macie runs the job on day 30 of that month.

ResourceNotFoundException

Provides information about an error that occurred because a specified resource wasn't found.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

S3BucketDefinitionForJob

Specifies which AWS account owns the S3 buckets that a classification job analyzes, and the buckets to analyze for the account.

Property Type Required Description
accountId

string

False

The unique identifier for the AWS account that owns the buckets. If you specify this value and don't specify a value for the buckets array, the job analyzes objects in all the buckets that are owned by the account and meet other conditions specified for the job.

buckets

Array of type string

False

An array that lists the names of the buckets.

S3JobDefinition

Specifies which S3 buckets contain the objects that a classification job analyzes, and the scope of that analysis.

Property Type Required Description
bucketDefinitions

Array of type S3BucketDefinitionForJob

False

An array of objects, one for each AWS account that owns buckets to analyze. Each object specifies the account ID for an account and one or more buckets to analyze for the account.

scoping

Scoping

False

The property- and tag-based conditions that determine which objects to include or exclude from the analysis.

ScopeFilterKey

The property to use in a condition that determines which objects are analyzed by a classification job. Valid values are:

  • BUCKET_CREATION_DATE

  • OBJECT_EXTENSION

  • OBJECT_LAST_MODIFIED_DATE

  • OBJECT_SIZE

  • TAG

Scoping

Specifies one or more property- and tag-based conditions that refine the scope of a classification job. These conditions define criteria that determine which objects a job analyzes. Exclude conditions take precedence over include conditions.

Property Type Required Description
excludes

JobScopingBlock

False

The property- or tag-based conditions that determine which objects to exclude from the analysis.

includes

JobScopingBlock

False

The property- or tag-based conditions that determine which objects to include in the analysis.

ServiceQuotaExceededException

Provides information about an error that occurred due to one or more service quotas for an account.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

SimpleScopeTerm

Specifies a property-based condition that determines whether an object is included or excluded from a classification job.

Property Type Required Description
comparator

JobComparator

False

The operator to use in the condition. Valid operators for each supported property (key) are:

  • OBJECT_EXTENSION - EQ (equals) or NE (not equals)

  • OBJECT_LAST_MODIFIED_DATE - Any operator except CONTAINS

  • OBJECT_SIZE - Any operator except CONTAINS

  • TAG - EQ (equals) or NE (not equals)

values

Array of type string

False

An array that lists the values to use in the condition. If the value for the key property is OBJECT_EXTENSION, this array can specify multiple values and Amazon Macie uses an OR operator to join the values. Otherwise, this array can specify only one value. Valid values for each supported property (key) are:

  • OBJECT_EXTENSION - A string that represents the file name extension of an object. For example: doc, docx, pdf

  • OBJECT_LAST_MODIFIED_DATE - The date and time (in UTC and extended ISO 8601 format) when an object was created or last changed, whichever is latest. For example: 2020-09-28T14:31:13Z

  • OBJECT_SIZE - An integer that represents the storage size (in bytes) of an object.

  • TAG - A string that represents a tag key for an object. For advanced options, use a TagScopeTerm object, instead of a SimpleScopeTerm object, to define a tag-based condition for the job.

key

ScopeFilterKey

False

The object property to use in the condition.

TagMap

A string-to-string map of key-value pairs that specifies the tags (keys and values) for a classification job, custom data identifier, findings filter, or member account.

Property Type Required Description

*

string

False

TagScopeTerm

Specifies a tag-based condition that determines whether an object is included or excluded from a classification job.

Property Type Required Description
comparator

JobComparator

False

The operator to use in the condition. Valid operators are EQ (equals) or NE (not equals).

tagValues

Array of type TagValuePair

False

The tag keys or tag key and value pairs to use in the condition.

key

string

False

The tag key to use in the condition.

target

TagTarget

False

The type of object to apply the condition to.

TagTarget

The type of object to apply a tag-based condition to. Valid values are:

  • S3_OBJECT

TagValuePair

Specifies a tag key or tag key and value pair to use in a tag-based condition for a classification job.

Property Type Required Description
value

string

False

The tag value, associated with the specified tag key (key), to use in the condition. To specify only a tag key for a condition, specify the tag key for the key property and set this value to an empty string.

key

string

False

The value for the tag key to use in the condition.

ThrottlingException

Provides information about an error that occurred because too many requests were sent during a certain amount of time.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

ValidationException

Provides information about an error that occurred due to a syntax error in a request.

Property Type Required Description
message

string

False

The explanation of the error that occurred.

WeeklySchedule

Specifies a weekly recurrence pattern for running a classification job.

Property Type Required Description
dayOfWeek

string

Values: SUNDAY | MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY

False

The day of the week when Amazon Macie runs the job.

See Also

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

CreateClassificationJob