AWS Systems Manager の機能である Session Manager の起動を、特定のユーザーのみが行えるようにするために、インスタンスへのアクセスを制御したいと考えています。
簡単な説明
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたはオンプレミスインスタンスの管理に Session Manager を使用します。Session Manager の接続は、ブラウザベースのシェルまたは AWS コマンドラインインターフェイス (AWS CLI) 経由で行います。
Session Manager を使用してインスタンスにアクセスできるユーザーを Identity and Access Management (IAM) ポリシーで制御します。ユーザーが実行できる API アクションも、IAM ポリシーで制御します。
**注:**AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
前提条件:
解決策
ユーザーが Session Manager に接続できるようにするには、まず、IAM ユーザーに StartSession 権限を付与する IAM ポリシーを作成してから、その IAM ポリシーを IAM ユーザーにアタッチします。
次の手順を実行します。
- IAM コンソールを開きます。
- ナビゲーションペインの [アクセス管理] で [ポリシー] を選択します。
- [ポリシーの作成] を選択し、[JSON] タブを選択します。
- サンプル JSON ドキュメント「Restrict access to specific managed nodes」をコピーし、コンソールの [JSON] タブにポリシーを入力します。
重要: ポリシー例では、リソースの ARN は us-east-2 AWS リージョンを使用しており、インスタンス ID とアカウント ID のプレースホルダーが含まれています。これらの値を実際の値に置き換えてください。
- [次へ] を選択します。
- [確認と作成] ページで次の情報を入力します。
[ポリシー名] にポリシー名を入力します。
(オプション) [説明] にポリシーの説明を入力します。
- [ポリシーを作成] を選択します。
- IAM ポリシーをユーザーにアタッチします。
ユーザーにアクセス許可がある場合は、次のコマンドを実行すると、start-session API コールを開始できます。
aws ssm start-session --target instance-id
注: instance-id をユーザーがセッションを開始するインスタンスの ID に置き換えてください。
ユーザーが Amazon EC2 コンソールを使用してセッションを開始できるようにするには、そのユーザーに次の AWS マネージドポリシーをアタッチします。
- AmazonSSMReadOnlyAccess
- AmazonEC2ReadOnlyAccess
関連情報
Session Manager の追加 IAM ポリシー例
セッションを開始する
IAM ポリシーを作成する作成 (コンソール)
AWS システムマネージャーと IAM の連携方法
AWS Systems Manager マネージドポリシー