

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SSM 経由でコンテナにアクセスする
<a name="ssm-access"></a>

 Amazon SageMaker AI を使用すると、 AWS Systems Manager (SSM) を使用して、モデルが推論用にデプロイされている Docker コンテナに安全に接続できます。これにより、コンテナへのシェルレベルのアクセスが可能になり、コンテナ内で実行されているプロセスをデバッグし、Amazon CloudWatch でコマンドと応答を記録できます。コンテナをホストする ML インスタンス AWS PrivateLink への接続を設定して、SSM 経由でコンテナにプライベートにアクセスすることもできます。

**警告**  
 SSM アクセスを有効にすると、エンドポイントのパフォーマンスに影響することがあります。この機能は、本番環境のエンドポイントではなく、開発用またはテスト用のエンドポイントで使用することをお勧めします。また、SageMaker AI はセキュリティパッチを自動的に適用し、問題のあるエンドポイントインスタンスを 10 分以内に置換または終了します。ただし、SSM が有効になっている本番稼働用バリアントを使用するエンドポイントの場合、SageMaker AI はデバッグを可能にするために、セキュリティパッチの適用と障害のあるエンドポイントインスタンスの置換または終了を 1 日遅らせます。

 次のセクションでは、この機能の使用方法について詳しく説明します。

## 許可リスト
<a name="ssm-access-allowlist"></a>

 この機能を使用するには、カスタマーサポートに連絡し、アカウントを許可リストに登録する必要があります。アカウントが SSM アクセスの許可リストに登録されていない場合、SSM アクセスが有効なエンドポイントを作成することはできません。

## SSM アクセスを有効にする
<a name="ssm-access-enable"></a>

 エンドポイントの既存コンテナへの SSM アクセスを有効にするには、`EnableSSMAccess` パラメータを `true` に設定した新しいエンドポイント設定でエンドポイントを更新します。次の例は、エンドポイント設定のサンプルを示しています。

```
{
    "EndpointConfigName": "endpoint-config-name",
    "ProductionVariants": [
        {
            "InitialInstanceCount": 1,
            "InitialVariantWeight": 1.0,
            "InstanceType": "ml.t2.medium",
            "ModelName": model-name,
            "VariantName": variant-name,
            "EnableSSMAccess": true,
        },
    ]
}
```

 SSM アクセスを有効にする方法の詳細については、「[EnableSSMAccess](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html#API_EnableSSMAccess)」を参照してください。

## IAM の設定
<a name="ssm-access-iam"></a>

### エンドポイントの IAM アクセス権限
<a name="ssm-access-iam-endpoint"></a>

 エンドポイントインスタンスの SSM アクセスを有効にした場合、SageMaker AI はエンドポイントインスタンスを開始する際、[SSM エージェント](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)を起動して管理します。SSM エージェントが SSM サービスと通信できるようにするには、エンドポイントが実行される実行ロールに次のポリシーを追加します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	             
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"    
        }
    ]
 }
```

------

### ユーザーの IAM アクセス許可
<a name="ssm-access-iam-user"></a>

 次のポリシーを追加して、IAM ユーザーに SSM ターゲットに接続するための SSM セッションアクセス許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	             
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession"
            ],
            "Resource": "*"    
        }
    ]
}
```

------

 次のポリシーを使用して、IAM ユーザーが接続できるエンドポイントを制限できます。*イタリック体のプレースホルダーテキスト*を独自の情報に置き換えます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	  
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": "arn:aws:sagemaker:us-east-2:111122223333:endpoint/endpoint-name"    
        }
    ]
}
```

------

## を使用した SSM アクセス AWS PrivateLink
<a name="ssm-access-privatelink"></a>

 エンドポイントがパブリックインターネットに接続されていない Virtual Private Cloud (VPC) 内で実行されている場合、 AWS PrivateLink を使用して SSM を有効にできます。 AWS PrivateLink は、エンドポイントインスタンス、SSM、Amazon EC2 間のすべてのネットワークトラフィックを Amazon ネットワークに制限します。 AWS PrivateLinkで SSM アクセスを設定する方法の詳細については、「[Session Manager の VPC エンドポイントを設定する](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-privatelink.html)」を参照してください。

## Amazon CloudWatch Logs でのロギング
<a name="ssm-access-logging"></a>

 SSM アクセスが有効なエンドポイントでは、Amazon CloudWatch Logs を使用して SSM エージェントからのエラーをログに記録できます。CloudWatch Logs でエラーをログに記録する方法の詳細については、「[Logging session activity](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html)」を参照してください。ログは、エンドポイントロググループ `/aws/sagemaker/endpoints/endpoint-name` 下の SSM ログストリーム `variant-name/ec2-instance-id/ssm` にあります。ログの表示方法の詳細については、「[CloudWatch Logs に送信されたログデータを表示する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData)」を参照してください。

 エンドポイントの背後にある本番稼働用バリアントには、複数のモデルコンテナを含めることができます。各モデルコンテナのログはログストリームに記録されます。各ログの先頭には `[sagemaker ssm logs][container-name]` が付きます。ここで、`container-name` はコンテナに付けた名前か、`container_0`、`container_1` などのデフォルトの名前です。

## モデルコンテナへのアクセス
<a name="ssm-access-container"></a>

 エンドポイントインスタンスのモデルコンテナにアクセスするには、ターゲット ID が必要です。ターゲット ID は次のいずれかの形式です。
+  `sagemaker-endpoint:endpoint-name_variant-name_ec2-instance-id` 単一コンテナエンドポイントのコンテナ用 
+  `sagemaker-endpoint:endpoint-name_variant-name_ec2-instance-id_container-name` マルチコンテナエンドポイントのコンテナ用 

 次の例は、 を使用してターゲット ID を使用してモデルコンテナ AWS CLI にアクセスする方法を示しています。

```
aws ssm start-session --target sagemaker-endpoint:prod-image-classifier_variant1_i-003a121c1b21a90a9_container_1
```

 [Amazon CloudWatch Logs でのロギング](#ssm-access-logging) で述べているようにログ記録を有効にすると、SSM ログストリームの最初にリストされているすべてのコンテナのターゲット ID を確認できます。

**注記**  
 SSM を使用して、1P アルゴリズムコンテナや SageMaker AI MarketPlace から取得したモデルのコンテナに接続することはできません。ただし、 AWS が提供する深層学習コンテナ (DLC) や、所有する任意のカスタムコンテナには接続できます。
 モデルコンテナのネットワーク分離を有効にして、アウトバウンドのネットワーク呼び出しを行えないようにしている場合、そのコンテナの SSM セッションを開始することはできません。
 1 つの SSM セッションから 1 つのコンテナにのみアクセスできます。同じエンドポイントの背後にあるコンテナであっても、別のコンテナにアクセスするには、そのエンドポイントのターゲット ID を使用して新しい SSM セッションを開始します。