

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 透過介面 VPC 端點連線至 Amazon SageMaker Studio 和 Studio Classic。
<a name="studio-interface-endpoint"></a>

您可以透過 VPC 中的[介面端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)從[ Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) (Amazon VPC) 連線到 Amazon SageMaker Studio 和 Amazon SageMaker Studio Classic，而不是透過網際網路連線。當您使用介面 VPC 端點 （介面端點） 時，VPC 與 Studio 或 Studio Classic 之間的通訊會完全安全地在 AWS 網路中執行。

Studio 和 Studio Classic 支援 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html) 驅動的介面端點。每個介面端點皆會由一個或多個具私有 IP 地址[彈性網路介面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)來表示，而該介面位於您的 VPC 子網路中。

Studio 和 Studio Classic 在所有可使用 [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing/) 和 [Amazon VPC](https://aws.amazon.com/vpc/pricing/) 的 AWS 區域中支援介面端點。

**Topics**
+ [建立 VPC 端點](#studio-interface-endpoint-create)
+ [為 Studio 或 Studio Classic 建立 VPC 端點政策](#studio-private-link-policy)
+ [僅允許從您的 VPC 內部存取](#studio-private-link-restrict)

## 建立 VPC 端點
<a name="studio-interface-endpoint-create"></a>

您可以使用 AWS 主控台或 AWS Command Line Interface () 建立介面端點以連線至 Studio 或 Studio Classic AWS CLI。如需指示，請參閱[建立介面端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。確定為 VPC 中您要從中連線至 Studio 或 Studio Classic 的所有子網路建立介面端點。

建立介面端點時，請確保端點上的安全群組允許 HTTPS 流量的傳入存取，而此流量來自與 Studio 和 Studio Classic 相關聯的安全群組。如需詳細資訊，請參閱[使用 VPC 端點控制服務的存取](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#vpc-endpoints-security-groups)。

**注意**  
除了建立介面端點以連線至 Studio 或 Studio Classic 之外，還會建立介面端點以連線至 Amazon SageMaker API。當使用者呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedDomainUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedDomainUrl.html) 以取得 URL 連線至 Studio 或 Studio Classic 時，該呼叫會經過用來連線至 SageMaker API 的介面端點。

當您建立介面端點時，請將 **aws.sagemaker.*Region*.studio** 指定為 Studio 或 Studio Classic 的服務名稱。在您建立介面端點後，請為您的端點啟用私有 DNS。當您使用 SageMaker API AWS CLI、 或 主控台從 VPC 內連線至 Studio 或 Studio Classic 時，您可以透過介面端點而非公有網際網路進行連線。您還需要為 Amazon VPC 端點設定具有私有託管區域的自訂 DNS，以便 Studio 或 Studio Classic 可以使用 `api.sagemaker.$region.amazonaws.com` 端點存取 SageMaker API，而不是使用 VPC 端點 URL。有關設置專用託管區域的指示，請參閱[使用私有託管區域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

## 為 Studio 或 Studio Classic 建立 VPC 端點政策
<a name="studio-private-link-policy"></a>

您可以將 Amazon VPC 端點政策連接到您用來連線至 Studio 或 Studio Classic 的介面 VPC 端點。端點政策會控制對 Studio 或 Studio Classic 的存取。您可以指定下列項目：
+ 可執行動作的主體。
+ 可執行的動作。
+ 可供執行動作的資源。

若要使用 VPC 端點搭配 Studio 或 Studio Classic，您的端點政策必須允許 KernelGateway 應用程式類型上的 `CreateApp` 操作。此設定可讓透過 VPC 端點路由傳送的流量呼叫 `CreateApp` API。下列範例 VPC 端點政策顯示如何允許 `CreateApp` 操作。

```
{
 "Statement": [
   {
     "Action": "sagemaker:CreateApp",
     "Effect": "Allow",
     "Resource": "arn:aws:sagemaker:us-west-2:acct-id:app/domain-id/*",
     "Principal": "*"
   }
 ]
}
```

如需詳細資訊，請參閱[使用 VPC 端點控制服務的存取](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)。

以下 VPC 端點政策範例指定所有可存取端點的使用者，都可以存取具有指定網域 ID 的 SageMaker AI 網域中的使用者設定檔。其他網域的存取會遭拒。

```
{
  "Statement": [
      {
          "Action": "sagemaker:CreatePresignedDomainUrl",
          "Effect": "Allow",
          "Resource": "arn:aws:sagemaker:us-west-2:acct-id:user-profile/domain-id/*",
          "Principal": "*"
      }
  ]
}
```

## 僅允許從您的 VPC 內部存取
<a name="studio-private-link-restrict"></a>

即使您在您的 VPC 中設定介面端點，您的 VPC 外部的使用者也可以透過網際網路連線至 Studio 或 Studio Classic。

若要僅允許從您的 VPC 內建立的連線存取，請建立 AWS Identity and Access Management (IAM) 政策。將該政策新增至用來存取 Studio 或 Studio Classic 的每個使用者、群組或角色。僅在使用 IAM 模式進行驗證時才支援此特徵，而在 IAM Identity Center 模式中不支援。下列範例示範如何建立此類政策。

**重要**  
如果您套用類似下列其中一個範例的 IAM 政策，則使用者無法透過 SageMaker AI 主控台存取 Studio 或 Studio Classic 或特定 SageMaker API。若要存取 Studio 或 Studio Classic，使用者必須使用預先簽署的 URL 或直接呼叫 SageMaker API。

**範例 1：僅允許介面端點子網路內的連線**

下列政策僅允許向建立介面端點之子網路中的呼叫者建立連線。

------
#### [ JSON ]

****  

```
{
    "Id": "sagemaker-studio-example-1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableSageMakerStudioAccess",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeUserProfile"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceVpc": "vpc-111bbaaa"
                }
            }
        }
    ]
}
```

------

**範例 2：僅允許透過介面端點使用 `aws:sourceVpce` 的連線**

下列策略僅允許連線至透過 `aws:sourceVpce` 條件金鑰指定的介面端點建立的連線。例如，第一個介面端點可以允許透過 SageMaker AI 主控台進行存取。第二個介面端點可允許透過 SageMaker API 進行存取。

------
#### [ JSON ]

****  

```
{
    "Id": "sagemaker-studio-example-2",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableSageMakerStudioAccess",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeUserProfile"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:sourceVpce": [
                        "vpce-111bbccc",
                        "vpce-111bbddd"
                    ]
                }
            }
        }
    ]
}
```

------

此政策也包含 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeUserProfile.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeUserProfile.html) 動作。通常您會在嘗試連線到網域之前呼叫 `DescribeUserProfile` 來確定使用者設定檔的狀態為 `InService`。例如：

```
aws sagemaker describe-user-profile \
    --domain-id domain-id \
    --user-profile-name profile-name
```

回應：

```
{
    "DomainId": "domain-id",
    "UserProfileArn": "arn:aws:sagemaker:us-west-2:acct-id:user-profile/domain-id/profile-name",
    "UserProfileName": "profile-name",
    "HomeEfsFileSystemUid": "200001",
    "Status": "InService",
    "LastModifiedTime": 1605418785.555,
    "CreationTime": 1605418477.297
}
```

```
aws sagemaker create-presigned-domain-url
    --domain-id domain-id \
    --user-profile-name profile-name
```

回應：

```
{
    "AuthorizedUrl": "https://domain-id.studio.us-west-2.sagemaker.aws/auth?token=AuthToken"
}
```

對於這兩個呼叫，如果您使用的是 2018 年 8 月 13 日之前發行的 AWS 開發套件版本，您必須在呼叫中指定端點 URL。例如，下列範例示範呼叫 `create-presigned-domain-url`：

```
aws sagemaker create-presigned-domain-url
    --domain-id domain-id \
    --user-profile-name profile-name \
    --endpoint-url vpc-endpoint-id.api.sagemaker.Region.vpce.amazonaws.com
```

**範例 3：允許來自使用 `aws:SourceIp` IP 地址的連線**

下列政策只允許使用 `aws:SourceIp` 條件金鑰來自指定 IP 地址範圍的連線。

------
#### [ JSON ]

****  

```
{
    "Id": "sagemaker-studio-example-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableSageMakerStudioAccess",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeUserProfile"
            ],
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "192.0.2.0/24",
                        "203.0.113.0/24"
                    ]
                }
            }
        }
    ]
}
```

------

**範例 4：允許透過使用介面端點從 IP 地址進行連線 `aws:VpcSourceIp`** 

如果您透過介面端點存取 Studio 或 Studio Classic，則您可以使用 `aws:VpcSourceIp` 條件金鑰，僅允許從子網路內指定的 IP 位址範圍進行連線，而您已在該子網路中建立介面端點，如下列政策所示：

------
#### [ JSON ]

****  

```
{
    "Id": "sagemaker-studio-example-4",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableSageMakerStudioAccess",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedDomainUrl",
                "sagemaker:DescribeUserProfile"
            ],
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:VpcSourceIp": [
                        "192.0.2.0/24",
                        "203.0.113.0/24"
                    ]
                },
                "StringEquals": {
                    "aws:SourceVpc": "vpc-111bbaaa"
                }
            }
        }
    ]
}
```

------