[ aws . detective ]

create-members

Description

Sends a request to invite the specified AWS accounts to be member accounts in the behavior graph. This operation can only be called by the master account for a behavior graph.

CreateMembers verifies the accounts and then sends invitations to the verified accounts.

The request provides the behavior graph ARN and the list of accounts to invite.

The response separates the requested accounts into two lists:

  • The accounts that CreateMembers was able to start the verification for. This list includes member accounts that are being verified, that have passed verification and are being sent an invitation, and that have failed verification.

  • The accounts that CreateMembers was unable to process. This list includes accounts that were already invited to be member accounts in the behavior graph.

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.

Synopsis

  create-members
--graph-arn <value>
[--message <value>]
--accounts <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]

Options

--graph-arn (string)

The ARN of the behavior graph to invite the member accounts to contribute their data to.

--message (string)

Customized message text to include in the invitation email message to the invited member accounts.

--accounts (list)

The list of AWS accounts to invite to become member accounts in the behavior graph. For each invited account, the account list contains the account identifier and the AWS account root user email address.

(structure)

An AWS account that is the master of or a member of a behavior graph.

AccountId -> (string)

The account identifier of the AWS account.

EmailAddress -> (string)

The AWS account root user email address for the AWS account.

Shorthand Syntax:

AccountId=string,EmailAddress=string ...

JSON Syntax:

[
  {
    "AccountId": "string",
    "EmailAddress": "string"
  }
  ...
]

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See ‘aws help’ for descriptions of global parameters.

Examples

To invite member accounts to a behavior graph

The following create-members example invites two AWS accounts to become member accounts in the specified behavior graph. For each account, the request provides the AWS account ID and the account root user email address. The request also includes a custom message to insert into the invitation email.

aws detective create-members \
    --accounts AccountId=444455556666,EmailAddress=mmajor@example.com AccountId=123456789012,EmailAddress=jstiles@example.com \
    --graph-arn arn:aws:detective:us-east-1:111122223333:graph:123412341234 \
    --message "This is Paul Santos. I need to add your account to the data we use for security investigation in Amazon Detective. If you have any questions, contact me at psantos@example.com."

Output:

{
    "Members": [
    {
        "AccountId": "444455556666",
        "EmailAddress": "mmajor@example.com",
        "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234",
        "InvitedTime": 1579826107000,
        "MasterId": "111122223333",
        "Status": "INVITED",
        "UpdatedTime": 1579826107000
   },
   {
        "AccountId": "123456789012",
        "EmailAddress": "jstiles@example.com",
        "GraphArn": "arn:aws:detective:us-east-1:111122223333:graph:123412341234",
        "InvitedTime": 1579826107000,
        "MasterId": "111122223333",
        "Status": "VERIFICATION_IN_PROGRESS",
        "UpdatedTime": 1579826107000
     }
    ],
    "UnprocessedAccounts": [ ]
}

For more information, see Inviting Member Accounts to a Behavior Graph in the Amazon Detective Administration Guide.

Output

Members -> (list)

The set of member account invitation requests that Detective was able to process. This includes accounts that are being verified, that failed verification, and that passed verification and are being sent an invitation.

(structure)

Details about a member account that was invited to contribute to a behavior graph.

AccountId -> (string)

The AWS account identifier for the member account.

EmailAddress -> (string)

The AWS account root user email address for the member account.

GraphArn -> (string)

The ARN of the behavior graph that the member account was invited to.

MasterId -> (string)

The AWS account identifier of the master account for the behavior graph.

Status -> (string)

The current membership status of the member account. The status can have one of the following values:

  • INVITED - Indicates that the member was sent an invitation but has not yet responded.

  • VERIFICATION_IN_PROGRESS - Indicates that Detective is verifying that the account identifier and email address provided for the member account match. If they do match, then Detective sends the invitation. If the email address and account identifier don’t match, then the member cannot be added to the behavior graph.

  • VERIFICATION_FAILED - Indicates that the account and email address provided for the member account do not match, and Detective did not send an invitation to the account.

  • ENABLED - Indicates that the member account accepted the invitation to contribute to the behavior graph.

  • ACCEPTED_BUT_DISABLED - Indicates that the member account accepted the invitation but is prevented from contributing data to the behavior graph. DisabledReason provides the reason why the member account is not enabled.

Member accounts that declined an invitation or that were removed from the behavior graph are not included.

DisabledReason -> (string)

For member accounts with a status of ACCEPTED_BUT_DISABLED , the reason that the member account is not enabled.

The reason can have one of the following values:

  • VOLUME_TOO_HIGH - Indicates that adding the member account would cause the data volume for the behavior graph to be too high.

  • VOLUME_UNKNOWN - Indicates that Detective is unable to verify the data volume for the member account. This is usually because the member account is not enrolled in Amazon GuardDuty.

InvitedTime -> (timestamp)

The date and time that Detective sent the invitation to the member account. The value is in milliseconds since the epoch.

UpdatedTime -> (timestamp)

The date and time that the member account was last updated. The value is in milliseconds since the epoch.

PercentOfGraphUtilization -> (double)

The member account data volume as a percentage of the maximum allowed data volume. 0 indicates 0 percent, and 100 indicates 100 percent.

Note that this is not the percentage of the behavior graph data volume.

For example, the data volume for the behavior graph is 80 GB per day. The maximum data volume is 160 GB per day. If the data volume for the member account is 40 GB per day, then PercentOfGraphUtilization is 25. It represents 25% of the maximum allowed data volume.

PercentOfGraphUtilizationUpdatedTime -> (timestamp)

The date and time when the graph utilization percentage was last updated.

UnprocessedAccounts -> (list)

The list of accounts for which Detective was unable to process the invitation request. For each account, the list provides the reason why the request could not be processed. The list includes accounts that are already member accounts in the behavior graph.

(structure)

A member account that was included in a request but for which the request could not be processed.

AccountId -> (string)

The AWS account identifier of the member account that was not processed.

Reason -> (string)

The reason that the member account request could not be processed.