[ aws . sagemaker ]

create-domain

Description

Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region. Users within a domain can share notebook files and other artifacts with each other.

EFS storage

When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.

SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption .

VPC configuration

All SageMaker Studio traffic between the domain and the EFS volume is through the specified VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to Studio. The following options are available:

  • PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value.

  • VpcOnly - All Studio traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway. When internet access is disabled, you won’t be able to run a Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections.

Warning

NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a SageMaker Studio app successfully.

For more information, see Connect SageMaker Studio Notebooks to Resources in a VPC .

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.

Synopsis

  create-domain
--domain-name <value>
--auth-mode <value>
--default-user-settings <value>
--subnet-ids <value>
--vpc-id <value>
[--tags <value>]
[--app-network-access-type <value>]
[--home-efs-file-system-kms-key-id <value>]
[--kms-key-id <value>]
[--app-security-group-management <value>]
[--domain-settings <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]

Options

--domain-name (string)

A name for the domain.

--auth-mode (string)

The mode of authentication that members use to access the domain.

Possible values:

  • SSO

  • IAM

--default-user-settings (structure)

The default settings to use to create a user profile when UserSettings isn’t specified in the call to the CreateUserProfile API.

SecurityGroups is aggregated when specified in both calls. For all other settings in UserSettings , the values specified in CreateUserProfile take precedence over those specified in CreateDomain .

ExecutionRole -> (string)

The execution role for the user.

SecurityGroups -> (list)

The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

Optional when the CreateDomain.AppNetworkAccessType parameter is set to PublicInternetOnly .

Required when the CreateDomain.AppNetworkAccessType parameter is set to VpcOnly .

Amazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio. Therefore, the number of security groups that you can specify is one less than the maximum number shown.

(string)

SharingSettings -> (structure)

Specifies options for sharing SageMaker Studio notebooks.

NotebookOutputOption -> (string)

Whether to include the notebook cell output when sharing the notebook. The default is Disabled .

S3OutputPath -> (string)

When NotebookOutputOption is Allowed , the Amazon S3 bucket used to store the shared notebook snapshots.

S3KmsKeyId -> (string)

When NotebookOutputOption is Allowed , the Amazon Web Services Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.

JupyterServerAppSettings -> (structure)

The Jupyter server’s app settings.

DefaultResourceSpec -> (structure)

The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterServer app.

SageMakerImageArn -> (string)

The ARN of the SageMaker image that the image version belongs to.

SageMakerImageVersionArn -> (string)

The ARN of the image version created on the instance.

InstanceType -> (string)

The instance type that the image version runs on.

LifecycleConfigArn -> (string)

The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource.

LifecycleConfigArns -> (list)

The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to the JupyterServerApp.

(string)

KernelGatewayAppSettings -> (structure)

The kernel gateway app settings.

DefaultResourceSpec -> (structure)

The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.

SageMakerImageArn -> (string)

The ARN of the SageMaker image that the image version belongs to.

SageMakerImageVersionArn -> (string)

The ARN of the image version created on the instance.

InstanceType -> (string)

The instance type that the image version runs on.

LifecycleConfigArn -> (string)

The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource.

CustomImages -> (list)

A list of custom SageMaker images that are configured to run as a KernelGateway app.

(structure)

A custom SageMaker image. For more information, see Bring your own SageMaker image .

ImageName -> (string)

The name of the CustomImage. Must be unique to your account.

ImageVersionNumber -> (integer)

The version number of the CustomImage.

AppImageConfigName -> (string)

The name of the AppImageConfig.

LifecycleConfigArns -> (list)

The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to the the user profile or domain.

(string)

TensorBoardAppSettings -> (structure)

The TensorBoard app settings.

DefaultResourceSpec -> (structure)

The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

SageMakerImageArn -> (string)

The ARN of the SageMaker image that the image version belongs to.

SageMakerImageVersionArn -> (string)

The ARN of the image version created on the instance.

InstanceType -> (string)

The instance type that the image version runs on.

LifecycleConfigArn -> (string)

The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource.

RStudioServerProAppSettings -> (structure)

A collection of settings that configure user interaction with the RStudioServerPro app.

AccessStatus -> (string)

Indicates whether the current user has access to the RStudioServerPro app.

UserGroup -> (string)

The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.

RSessionAppSettings -> (structure)

A collection of settings that configure the RSessionGateway app.

JSON Syntax:

{
  "ExecutionRole": "string",
  "SecurityGroups": ["string", ...],
  "SharingSettings": {
    "NotebookOutputOption": "Allowed"|"Disabled",
    "S3OutputPath": "string",
    "S3KmsKeyId": "string"
  },
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "string",
      "SageMakerImageVersionArn": "string",
      "InstanceType": "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.8xlarge"|"ml.m5d.12xlarge"|"ml.m5d.16xlarge"|"ml.m5d.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
      "LifecycleConfigArn": "string"
    },
    "LifecycleConfigArns": ["string", ...]
  },
  "KernelGatewayAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "string",
      "SageMakerImageVersionArn": "string",
      "InstanceType": "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.8xlarge"|"ml.m5d.12xlarge"|"ml.m5d.16xlarge"|"ml.m5d.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
      "LifecycleConfigArn": "string"
    },
    "CustomImages": [
      {
        "ImageName": "string",
        "ImageVersionNumber": integer,
        "AppImageConfigName": "string"
      }
      ...
    ],
    "LifecycleConfigArns": ["string", ...]
  },
  "TensorBoardAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "string",
      "SageMakerImageVersionArn": "string",
      "InstanceType": "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.8xlarge"|"ml.m5d.12xlarge"|"ml.m5d.16xlarge"|"ml.m5d.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
      "LifecycleConfigArn": "string"
    }
  },
  "RStudioServerProAppSettings": {
    "AccessStatus": "ENABLED"|"DISABLED",
    "UserGroup": "R_STUDIO_ADMIN"|"R_STUDIO_USER"
  },
  "RSessionAppSettings": {

  }
}

--subnet-ids (list)

The VPC subnets that Studio uses for communication.

(string)

Syntax:

"string" "string" ...

--vpc-id (string)

The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.

--tags (list)

Tags to associated with the Domain. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API.

Tags that you specify for the Domain are also added to all Apps that the Domain launches.

(structure)

A tag object that consists of a key and an optional value, used to manage metadata for SageMaker Amazon Web Services resources.

You can add tags to notebook instances, training jobs, hyperparameter tuning jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, and endpoints. For more information on adding tags to SageMaker resources, see AddTags .

For more information on adding metadata to your Amazon Web Services resources with tagging, see Tagging Amazon Web Services resources . For advice on best practices for managing Amazon Web Services resources with tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services Resource Tagging Strategy .

Key -> (string)

The tag key. Tag keys must be unique per resource.

Value -> (string)

The tag value.

Shorthand Syntax:

Key=string,Value=string ...

JSON Syntax:

[
  {
    "Key": "string",
    "Value": "string"
  }
  ...
]

--app-network-access-type (string)

Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly .

  • PublicInternetOnly - Non-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access

  • VpcOnly - All Studio traffic is through the specified VPC and subnets

Possible values:

  • PublicInternetOnly

  • VpcOnly

--home-efs-file-system-kms-key-id (string)

This member is deprecated and replaced with KmsKeyId .

--kms-key-id (string)

SageMaker uses Amazon Web Services KMS to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, specify a customer managed key.

--app-security-group-management (string)

The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.

Possible values:

  • Service

  • Customer

--domain-settings (structure)

A collection of Domain settings.

SecurityGroupIds -> (list)

The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.

(string)

RStudioServerProDomainSettings -> (structure)

A collection of settings that configure the RStudioServerPro Domain-level app.

DomainExecutionRoleArn -> (string)

The ARN of the execution role for the RStudioServerPro Domain-level app.

RStudioConnectUrl -> (string)

A URL pointing to an RStudio Connect server.

RStudioPackageManagerUrl -> (string)

A URL pointing to an RStudio Package Manager server.

DefaultResourceSpec -> (structure)

Specifies the ARN’s of a SageMaker image and SageMaker image version, and the instance type that the version runs on.

SageMakerImageArn -> (string)

The ARN of the SageMaker image that the image version belongs to.

SageMakerImageVersionArn -> (string)

The ARN of the image version created on the instance.

InstanceType -> (string)

The instance type that the image version runs on.

LifecycleConfigArn -> (string)

The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource.

Shorthand Syntax:

SecurityGroupIds=string,string,RStudioServerProDomainSettings={DomainExecutionRoleArn=string,RStudioConnectUrl=string,RStudioPackageManagerUrl=string,DefaultResourceSpec={SageMakerImageArn=string,SageMakerImageVersionArn=string,InstanceType=string,LifecycleConfigArn=string}}

JSON Syntax:

{
  "SecurityGroupIds": ["string", ...],
  "RStudioServerProDomainSettings": {
    "DomainExecutionRoleArn": "string",
    "RStudioConnectUrl": "string",
    "RStudioPackageManagerUrl": "string",
    "DefaultResourceSpec": {
      "SageMakerImageArn": "string",
      "SageMakerImageVersionArn": "string",
      "InstanceType": "system"|"ml.t3.micro"|"ml.t3.small"|"ml.t3.medium"|"ml.t3.large"|"ml.t3.xlarge"|"ml.t3.2xlarge"|"ml.m5.large"|"ml.m5.xlarge"|"ml.m5.2xlarge"|"ml.m5.4xlarge"|"ml.m5.8xlarge"|"ml.m5.12xlarge"|"ml.m5.16xlarge"|"ml.m5.24xlarge"|"ml.m5d.large"|"ml.m5d.xlarge"|"ml.m5d.2xlarge"|"ml.m5d.4xlarge"|"ml.m5d.8xlarge"|"ml.m5d.12xlarge"|"ml.m5d.16xlarge"|"ml.m5d.24xlarge"|"ml.c5.large"|"ml.c5.xlarge"|"ml.c5.2xlarge"|"ml.c5.4xlarge"|"ml.c5.9xlarge"|"ml.c5.12xlarge"|"ml.c5.18xlarge"|"ml.c5.24xlarge"|"ml.p3.2xlarge"|"ml.p3.8xlarge"|"ml.p3.16xlarge"|"ml.p3dn.24xlarge"|"ml.g4dn.xlarge"|"ml.g4dn.2xlarge"|"ml.g4dn.4xlarge"|"ml.g4dn.8xlarge"|"ml.g4dn.12xlarge"|"ml.g4dn.16xlarge"|"ml.r5.large"|"ml.r5.xlarge"|"ml.r5.2xlarge"|"ml.r5.4xlarge"|"ml.r5.8xlarge"|"ml.r5.12xlarge"|"ml.r5.16xlarge"|"ml.r5.24xlarge",
      "LifecycleConfigArn": "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.

Output

DomainArn -> (string)

The Amazon Resource Name (ARN) of the created domain.

Url -> (string)

The URL to the created domain.