type
status
date
slug
summary
tags
category
icon
password
书籍
 

理論

1. AWS STS (Security Token Service)

  • STSは、短期間有効な認証情報を生成するサービスで、IAMユーザーやサービスがAWSリソースにアクセスするための一時的なセキュリティトークンを発行します。
  • sts:AssumeRoleを使ってIAMロールを引き受け、短期的な認証情報を得ることができます。

2. OIDC (OpenID Connect)

  • OIDCは、WebアプリケーションやCI/CDパイプラインにおいて、ユーザー認証のための標準的なプロトコルです。GitHubなどの外部サービスがAWSと連携する際に利用されます。
  • GitHub Actionsでは、OIDCを使って、IAMロールへのアクセスを一時的な認証情報を通じて安全に取得できます。

3. GitHub Actions と AWS の連携

  • GitHub Actionsは、CI/CDパイプラインを自動化するためのツールで、AWSリソースを操作するためには、認証情報が必要です。長期的なアクセスキーを使う方法はセキュリティ上のリスクがあるため、短期的なSTSトークンを使う方法が推奨されます。

4. セキュリティのベストプラクティス

  • 長期的な秘密鍵やアクセスキーの使用を避け、一時的なSTSトークンを使用することで、セキュリティリスクを最小限に抑えます。
  • OIDCやSAMLなどの外部認証プロバイダーを使うことで、AWSのアクセスをよりセキュアに管理できます。
これらの知識を理解することで、GitHub ActionsのようなCI/CDパイプラインをAWSに統合し、セキュリティと運用の負担を軽減することが可能です。

実践

一問道場

問題 #459
ある企業は、GitHub Actionsを使用してCI/CDパイプラインを実行し、AWSリソースにアクセスしています。パイプラインは、AWSに認証するためにシークレットキーを使用するIAMユーザーを持っています。既存のIAMロールには、リソースをデプロイするために必要な権限を持つポリシーがアタッチされています。企業のセキュリティチームは、新しいポリシーにより、パイプラインでは長期間使用されるシークレットキーが使えなくなったという要件を導入しました。ソリューションアーキテクトは、シークレットキーを短期間で利用可能な別の方法に置き換える必要があります。
この要件を最も運用負担を軽減して満たす解決策はどれでしょうか?
A. AWS Identity and Access Management (IAM)でSAML 2.0アイデンティティプロバイダー(IdP)を作成し、適切な信頼ポリシーを設定した新しいIAMロールを作成します。そのロールに、sts:AssumeRole API呼び出しを許可し、既存のIAMポリシーをアタッチします。GitHubでSAML認証を使用するようにパイプラインを更新します。
B. AWS Identity and Access Management (IAM)でOpenID Connect (OIDC)アイデンティティプロバイダー(IdP)を作成し、GitHub OIDC IdPからのsts:AssumeRoleWithWebIdentity API呼び出しを許可する信頼ポリシーを設定した新しいIAMロールを作成します。GitHubを更新して、そのロールをパイプラインで引き受けるようにします。
C. Amazon Cognitoアイデンティティプールを作成し、GitHubを認証プロバイダーとして設定します。その後、GitHub認証プロバイダーからのsts:AssumeRoleWithWebIdentity API呼び出しを許可する信頼ポリシーを設定した新しいIAMロールを作成します。パイプラインをCognitoを使用するように設定します。
D. AWS Private Certificate Authorityで信頼アンカーを作成し、AWS IAM Roles Anywhereで使用するクライアント証明書を生成します。信頼ポリシーを設定した新しいIAMロールを作成し、sts:AssumeRole API呼び出しを許可します。パイプラインで資格情報ヘルパーツールを使用し、クライアント証明書の公開鍵を参照してIAMロールを引き受けるように設定します。

解説

この問題は、CI/CDパイプラインでAWSリソースにアクセスする際に使用されている長期的なIAMユーザーのシークレットキーを、短期間で利用可能な解決策に置き換える方法に関するものです。セキュリティチームの新しい方針に従い、長期間使われるシークレットキーの代わりに、短期的な認証情報を使いたいという要件があります。

各選択肢の解説

  • A. SAML 2.0 アイデンティティプロバイダーを使用する方法
    • SAMLは、組織内の認証情報をAWSに渡すための標準的なプロトコルです。これを利用するためには、GitHub ActionsがSAML認証をサポートしていなければならず、これを設定するには多少のカスタマイズが必要です。SAML 2.0は通常、企業内シングルサインオン(SSO)に使用されるため、GitHub Actionsのような外部サービスと組み合わせるのは少し手間がかかります。
  • B. OpenID Connect (OIDC) アイデンティティプロバイダーを使用する方法
    • OIDCは、GitHub ActionsとAWSを安全に接続するための非常に適した方法です。GitHub Actionsは、OIDCをサポートしており、AWS側でOIDCを使った一時的な認証を行うことができます。この方法は、最もシンプルかつ運用負担が少ない方法です。GitHub ActionsからのAPI呼び出しを許可するため、IAMロールで sts:AssumeRoleWithWebIdentity ポリシーを使う設定を行います。
  • C. Amazon Cognito を使う方法
    • Cognitoは、ユーザー認証を簡単に行えるサービスですが、GitHub ActionsのパイプラインでCognitoを認証プロバイダーとして使う方法は、セットアップが複雑になる可能性があり、直接的な利点が少ない場合もあります。OIDCを使った方法に比べると運用負担が大きくなるかもしれません。
  • D. AWS IAM Roles Anywhere を使用する方法
    • IAM Roles Anywhereは、証明書ベースの認証を使って、オンプレミスや外部システムからAWSリソースへのアクセスを管理するものです。この方法は、GitHub Actionsでの利用には過剰な設定が必要で、運用負担が大きくなる可能性があります。特に、証明書の管理や資格情報ヘルパーツールの使用など、追加の手間がかかります。

最適な解決策

最もシンプルで運用負担が少なく、GitHub ActionsとAWS間で短期的な認証を行うために最適な方法は、B. OIDCを使用する方法です。これにより、GitHub Actionsは直接AWSのIAMロールを引き受け、一時的な認証情報を得ることができます。これにより、シークレットキーを使用する必要がなく、セキュリティ要件も満たすことができます。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
460-AWS SAP AWS 「理論・実践・一問道場」クローリング458-AWS SAP AWS 「理論・実践・一問道場」Amazon CloudWatch
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
第1回:イントロダクション
2025-4-21
TOKYO自習島
2025-4-21
第1回:イントロダクション
2025-4-18
第1回:オリエンテーション/意思決定と会計情報
2025-4-18
建物業法の基本と免許-59問
2025-4-10
宅建士过去问速刷:小南小白陪你拿证-001
2025-4-7
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享我在 IT・MBA・不动产中介 等领域的学习与实践经验,并推动 线上线下学习会 的自主开展。

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!