AWS Systems Manager Session ManagerとIAMでシンプルにユーザーを管理する/Manage users simply with AWS Systems Manager Session Manager and IAM

3e77f9dbec6a87756d1dbdddab283aee?s=47 Nulab Inc.
March 13, 2020

AWS Systems Manager Session ManagerとIAMでシンプルにユーザーを管理する/Manage users simply with AWS Systems Manager Session Manager and IAM

3e77f9dbec6a87756d1dbdddab283aee?s=128

Nulab Inc.

March 13, 2020
Tweet

Transcript

  1. 2.

    SRE 筋トレ歴3年目 ベンチプレス100kg 1rep blog: https://blog.nikuniku.me dev.to: https://dev.to/maaaato github: https://github.com/maaaato

    SRE / Emacs / AWS / Terraform / Ansible / Workout / English / Personal trainer Masayuki Nakano @maaaato @Stand_IO 2
  2. 8.

    ”Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブな ワ ンクリックブラウザベースのシェルや AWS

    CLI を介して Amazon EC2 インスタンス、オンプレミスイ ン スタンス、および仮想マシン (VM) を管理できます。Session Manager を使用すると、インバウンド ポートを開いたり、踏み台ホストを維持したり、 SSH キーを管理したりすることなく、監査可能なインスタ ンスを安全に管理できます。 また、Session Manager を使用すると、マネージドインスタンスへの簡単 なワンクリックのクロスプラットフォームアクセスをエンドユーザーに提供しつつ、インスタンスへの制御 されたアクセス、厳格なセキュリティプラクティス、 完全に監査可能なログ (インスタンスアクセスの詳細 を含む) が要求される企業ポリシーに簡単に準拠できます。 “ 8
  3. 13.

    Amazon Linux: Amazon Linux1 2017年9月以降のAMIに関してはインストール済み それ以前のAMIやAmazon ECS 対応のAMIは手動インストールが必要 Ubuntu: 20180627で識別されるUbuntu

    Server 16.04 以降のAMIに関してはインストール済み それ以前のAMIは手動インストールが必要 その他: 手動インストールが必要 ssm-agentのインストール 13
  4. 29.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ssm:StartSession"],

    "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/Name": ["Production"], "ssm:resourceTag/Name": ["Develop"] } } } ] } インスタンス毎にログインできるIAMユーザーを指定する https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restrict-acc ess-examples.html { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ssm:StartSession"], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/Name": ["Develop"] } } } ] } UserA UserB 29
  5. 35.

    ”AWS でのワークロードを拡大しスケールするときに、 AWS Organizations は環境の一元管理に役立ちま す。成長しているスタートアップでも、大規模な企業でも、 Organizations があれば、請求の一元管理や、ア ク セス、コンプライアンス、セキュリティの制御、

    AWS アカウント間でのリソースの共有ができます。 AWS Organizations を使用すると、アカウントの作成を自動化し、ビジネスニーズを反映したアカウントのグ ループを作成し、それらのグループにポリシーを適用して管理できます。 すべての AWS アカウントに対して単 一の支払い方法を設定すれば、請求を簡単にすることもできます。他の AWS のサービスと統合して Organizations を使用すれば、組織のアカウント全体の設定とリソース共有を一元的に定義できます。すべ ての AWS のお客様は、追加料金なしで AWS Organizations を利用できます。” 35
  6. 37.

    • 組織 • マスターアカウント • ルート • 組織単位(Organizations Unit) •

    アカウント • ServiceControllPolicy(SCP) AWS Organizationsの概要図 https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_getting-s tarted_concepts.html 37
  7. 44.

    SCP SCP/AWS Organizations Allow: S3:* Allow: SQS:* Allow: S3:* Allow:

    EC2:* IAM(アカウント内) SCPとIAMで指定されている S3へのアクションのみ実行可能 一致していないEC2への アクションは実行不可能 44
  8. 46.

    Custodianアカウントの使用例 Admin/OU Service/OU Sandbox/OU Audit API/Prod API/Dev Developer Sandbox Organization

    Custodian OUにAdminを作成し、管理関係のアカウントを Admin配下に作成する CustodianアカウントにてIAMユーザーの管理を行い、 Admin他、Service、 SandboxへのログインはCustodianを経由する 46
  9. 48.

    マルチアカウント + SSO(GSuite) GSuite マスターアカウント Custodian Audit API / Prod

    API / Dev Developer マスターアカウントの管理用ロールへ Switch(一部のユーザー) 一般ユーザーのルート • 管理ユーザーはマスターアカウントと Custodianにある IAMロールのarnを設定 • 一般ユーザーは CustodianにあるIAMロールのarnを設 定 48 管理ユーザー 一般ユーザー