Session Manager を使用してインスタンスへのアクセスを制御するにはどうすればよいですか?

最終更新日: 2021 年 3 月 17 日

特定のユーザーが指定したインスタンスに対して Session Manager セッションを開始できるように、インスタンスへのアクセスを制御したいと考えています。その方法を教えてください。

簡単な説明

AWS Systems Manager Session Manager を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたはオンプレミスのインスタンスを管理できます。Session Manager は、ブラウザーベースのシェル、または AWS コマンドラインインターフェイス (AWS CLI) を介して接続します。

Identity and Access Management (IAM) ポリシーにより、Session Manager を使用してインスタンスにアクセスできるユーザーを制御することができます。また、IAM ポリシーは、ユーザーが実行できる API アクションも制御します。

前提条件

解決方法

ユーザーが Session Manager に接続できるようにするには、最初に、IAM ユーザーに StartSession へのアクセスを許可する IAM ポリシーを作成します。次に、IAM ポリシーを IAM ユーザーにアタッチします。

次の手順に従って、IAM ユーザーが AWS CLI を使用して Session Manager セッションを開始することを許可する IAM ポリシーを作成し、アタッチします。次のポリシー例では、セッションを開始する機能を特定のインスタンスに制限しています。

注意: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

1.    IAM コンソールを開き、ナビゲーションペインで [Policies ] を選択します。

2.    [Create policy] を選択し、次に [JSON] タブを選択します。

3.    特定のインスタンスへのアクセスを制限するサンプル JSON ドキュメントをコピーし、コンソールの [JSON] タブにポリシーを貼り付けます。

重要: ポリシー例のリソースの ARN は us-east-2 AWS リージョンを使用しインスタンス IDアカウント ID のプレースホルダーを含みます。これらの値は必ず独自の値に置き換えてください。

4.    [Next: Tags] を選択します。

5.    [次へ: レビュー] を選択します。

6.    [Name] に、ポリシー名を入力します。

7.    (オプション) [Description] に説明を入力します。

8.    [Create policy] を選択してポリシーを保存します。

9.    Session Manager を使用してインスタンスへのアクセスを許可するユーザーに IAM ポリシーをアタッチします。

これで、アクセスが許可されたユーザーは、次の AWS CLI コマンドを使用して、start-session API 呼び出しを開始できるようになりました。

注意: ユーザーは、instance-id をセッションを開始するインスタンス ID に置き換える必要があります。

aws ssm start-session --target instance-id

ユーザーが Amazon EC2 コンソールを使用してセッションを開始できるようにするには、以下の AWS 管理ポリシーもユーザーにアタッチする必要があります。

  • AmazonSSMReadOnlyAccess
  • AmazonEC2ReadOnlyAccess