Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
永続的認証情報からの脱却 株式会社⾖蔵 庄司 重樹 2023年8⽉18⽇
Slide 2
Slide 2 text
コンサルタント 庄司 重樹 株式会社⾖蔵 AWS Community Builder, 2023 Japan AWS Top Engineer, 11x AWS Certified 好きなサービスは、IAM @takesection
Slide 3
Slide 3 text
IAMって何がすごい? 引⽤: InfoQ AWS re:Invent 2021の総括 から 最も驚異的な AWS サービスは何でしょうか? それは EC2 ではない でしょう。S3 でもありません。それは IAM です。毎秒 5 億回の API 呼び出しがあります... 想像してみてください。
Slide 4
Slide 4 text
永続的認証情報って何? IAMユーザーに設定したアクセスキーIDやシークレットアクセス キー
Slide 5
Slide 5 text
⼀時的認証情報って何? EC2やコンテナ (ECS、EKS、Fargate)、Lambda等でAWSリ ソースにアクセスする場合、IAMロールを割り当てる。 IAMロールはAssumeRole (ロールの引き受け) で⼀時的な認証情 報が利⽤可能になる。
Slide 6
Slide 6 text
どうして流出するの? • GitHubの公開リポジトリで全世界に公開😇 • GitHubのプライベートリポジトリだからといっても安⼼できな い • 暗号化されて保存されるシークレットストアも⼼配 • 2023年1⽉4⽇のCircleCIが有名
Slide 7
Slide 7 text
AWS IAM Identity Centerを使おう • IAM Identity Centerを使って、OktaやMS Entra ID、MS AD等 の認証基盤と連携しよう [profile foo] role_arn = arn:aws:iam::123456789012:role/RoleForFoo source_profile = example [profile example] sso_session = example sso_account_id = 123456789012 sso_role_name = ExamplePolicy region = ap-northeast-1 output = json [sso-session example] sso_start_url = https://d-XXXXXXXXXX.awsapps.com/start sso_region = ap-northeast-1 sso_registration_scopes = sso:account:access 「IAM でのセキュリティのベストプラクティス」
Slide 8
Slide 8 text
CLIの使い⽅ ʻaws sso login ‒profile exampleʼ を実⾏すると、認証され profile で指定されたロールの⼀時的認証情報が取得される (背後 で、STSを介して⼀時的認証情報 - アクセスキーID、シークレッ トアクセスキーとセッショントークン ‒ を取得している)。 「AWS IAM Identity Centerのロールから別のロールにCLIでスイッチして操作する」
Slide 9
Slide 9 text
CI/CDではOIDCトークンを使おう GitHub ActionsやGitLab CI/CD、CircleCI等を使う場合は、それ ぞれから発⾏されるOIDCトークンを使う。 • GitHub ActionsやGitLab CI/CD、CircleCI等の外部IDプロバイ ダをIAM IDプロバイダに追加 • STSのAssumeRoleWithWebIdentityアクションで、指定した ロールの⼀時的認証情報を取得 「GitHub Actions ワークフローでリテラルの AWS アカウント ID を使⽤しないためのヒント」
Slide 10
Slide 10 text
Google Apps Scriptでは Google Apps ScriptのWebアプリでは、 ScriptApp.getIdentityToken()でOIDCトークンを取得することが できる。CI/CDの場合と同様にAssumeRoleWithWebIdentityア クションで、⼀時的認証情報を取得してAWSリソースへのアク セスが可能 「Google Apps ScriptからAWSにアクセスするための署名の実装」
Slide 11
Slide 11 text
オンプレミスサーバはどうすれば… SSM AgentをインストールしてAWS Systems Managerのマネー ジドノードに追加できる場合は、IAMロールが使える 「オンプレミスのサーバでIAMロールを使⽤する」 「5分でわかった気になるSystemsManager」
Slide 12
Slide 12 text
ご清聴ありがとうございました🙇