

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# 設定可能なシェルプロファイルを有効にする
<a name="session-preferences-shell-config"></a>

デフォルトでは、Linux 用 EC2 インスタンス上のセッションは Bourne シェル (sh) を使用して開始します。ただし、bash のような別のシェルを使用することを好む人もいます。設定可能なシェルプロファイルを有効にすると、シェルの設定、環境変数、作業ディレクトリ、セッション開始時の複数のコマンドの実行など、セッション内の設定をカスタマイズできます。

**重要**  
Systems Manager は、実行前にインスタンスにどのような変更が加えられるかを確認するために、シェルプロファイル内のコマンドやスクリプトをチェックしません。シェルプロファイルに入力されたコマンドやスクリプトのユーザーによる変更を制限するため、次の操作を推奨します。  
AWS Identity and Access Management (IAM) ユーザーおよびロール用にカスタマイズされたセッションタイプのドキュメントを作成します。次に、これらのユーザーとロールの IAM ポリシーを変更して、`StartSession` API オペレーションがユーザー用に作成したセッションタイプのドキュメントのみを使用できるようにします。詳細については、「[Session Manager プリファレンスドキュメントを作成する (コマンドライン)](getting-started-create-preferences-cli.md)」および「[クイックスタート Session Manager のエンドユーザーポリシー](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user)」を参照してください。
IAM ユーザーおよびロールの IAM ポリシーを変更して、作成するセッションタイプのドキュメントリソースについて `UpdateDocument` API オペレーションへのアクセスを拒否します。これにより、ユーザーとロールは、設定の変更を許可されることなく、作成したドキュメントをセッションの環境設定に使用できます。

**設定可能なシェルプロファイルを有効にするには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[Session Manager]** を選択します。

1. [**Preferences (設定)**] タブを選択してから、[**Edit (編集)**] を選択します。

1. 該当するオペレーティングシステムのフィールドで、セッションの開始時に実行する環境変数、シェル環境設定、またはコマンドを指定します。

1. [**Save**] を選択します。

シェルプロファイルに追加できるコマンドの例を次に示します。

Linux インスタンスで bash シェルに移動し、/usr ディレクトリに移動します。

```
exec /bin/bash
cd /usr
```

セッションの開始時にタイムスタンプと「ようこそ」メッセージを出力します。

------
#### [ Linux & macOS ]

```
timestamp=$(date '+%Y-%m-%dT%H:%M:%SZ')
user=$(whoami)
echo $timestamp && echo "Welcome $user"'!'
echo "You have logged in to a production instance. Note that all session activity is being logged."
```

------
#### [  Server   ]

```
$timestamp = (Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")
$splitName = (whoami).Split("\")
$user = $splitName[1]
Write-Host $timestamp
Write-Host "Welcome $user!"
Write-Host "You have logged in to a production instance. Note that all session activity is being logged."
```

------

セッション開始時の動的システムアクティビティを表示します。

------
#### [ Linux & macOS ]

```
top
```

------
#### [  Server   ]

```
while ($true) { Get-Process | Sort-Object -Descending CPU | Select-Object -First 30; `
Start-Sleep -Seconds 2; cls
Write-Host "Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName"; 
Write-Host "-------  ------    -----      ----- -----   ------     -- -----------"}
```

------