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.
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>]
--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 theCreateUserProfile
API.
SecurityGroups
is aggregated when specified in both calls. For all other settings inUserSettings
, the values specified inCreateUserProfile
take precedence over those specified inCreateDomain
.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 toPublicInternetOnly
.Required when the
CreateDomain.AppNetworkAccessType
parameter is set toVpcOnly
.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
isAllowed
, the Amazon S3 bucket used to store the shared notebook snapshots.S3KmsKeyId -> (string)
When
NotebookOutputOption
isAllowed
, 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 subnetsPossible 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 whenCreateDomain.AppNetworkAccessType
isVPCOnly
andDomainSettings.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.
DomainArn -> (string)
The Amazon Resource Name (ARN) of the created domain.
Url -> (string)
The URL to the created domain.