Amazon Web Services ブログ

Category: Advanced (300)

AWS AppConfigとAWS CodePipelineの統合による機能リリースの自動化

昨年、AWS AppConfigをリリースしました。これはアプリケーション設定の作成、管理及び迅速なデプロイを行う、AWS Systems Managerの新機能です。AppConfigを使用すると、デプロイメントを行う前にアプリケーション設定を検証でき、制御及び監視可能な方法で設定をデプロイできます。 AWS AppConfigを使用すると、アプリケーションコードのデプロイメントとは独立して、設定の変更をデプロイ可能です。つまり、アプリケーション設定を更新しても、アプリケーションの再起動やサービスの停止を行う必要がありません。AWS AppConfigを使用すれば、アプリケーションは更新した設定をすぐに使用できます。具体的には、AWS AppConfig API、AWS CLIやAWS SDKを使用することで、更新した設定を取得することができます。 ローンチ以来、お客様はさまざまなユースケースにAWS AppConfigを採用しており、なかでもコードのデプロイメントとは独立して新機能をリリースする機能がトップユースケースの1つでした。アプリケーション設定のデプロイメントはコードのデプロイメントより高速です。なぜならコンフィグレーションファイルは、ビルドステージを必要とせず、アプリケーションを停止すること無く実行中にデプロイすることができるためです。 機能リリースにあたって、バックエンドサービスの設定とフロントエンドの設定を正しい順序で行う必要があります。そのためには、しばしば複数のチームや手作業を調停する必要があります。こういった手作業によるデプロイメントは、カスタマーエクスペリエンスに影響を与える作業遅延を引き起こす可能性があります。 複数の環境、アプリケーションやリージョンに、アプリケーション設定をデプロイするという手動タスクをシンプルにするために、我々はAWS AppConfigとAWS CodePipelineの統合を発表しました。このローンチは、お客様が AWSの数千のチームが使用するベストプラクティスを選択することを可能にします。それは、コード変更を機能リリースから容易に分離し、安全且つ効率的な方法でこれらの機能リリースを自動化するというものです。

Read More

CloudFormation で cfn-init に代えて State Manager を利用する方法とその利点

はじめに AWS CloudFormationを介してAmazon Elastic Cloud Compute (EC2) インスタンスをデプロイした後には、ソフトウェアのインストール、またはオペレーティングシステムの設定が必要になることがほとんどです。多くのAWSのお客様はCloudFormationのヘルパースクリプトの一つである cfn-init (2012年2月から利用可能)を使用していると思います。しかし、それ以後もAWSは、お客様のフィードバックに応じて多くの新機能とサービスをリリースしてきました。そのうちの一つはAWS Systems Managerです。このブログ記事では、AWS CloudFormationを介してデプロイされたAmazon EC2インスタンスに対して、AWS Systems Manager State Managerを使用してインスタンスを設定する、よりシンプルで堅牢な方法を紹介します。

Read More

AWS Config 適合パックを使用したAWS Control Tower発見的ガードレールの実装

多くのお客様から、AWS Control Towerによるガバナンスを実現する前に、Control Towerの発見的ガードレールだけを既存のAWSアカウントに適用したいという要望をいただいています。この度、既存のAWS OrganizationでAWS Control Towerを起動できるようになりました。これにより、お客様は既存のアカウントにてAWS Control Towerの発見的ガードレールのコンプライアンスを適用できるようになりました。加えて、我々はControl Towerの配下にアカウントを登録する機能も発表しました。Control Towerガバナンスをアカウントに拡張する前に、Control Towerのガードレールがアカウントにどのように影響するかを確認することをお勧めします。 このブログでは、AWS Config適合パックを使用してControl Towerガードレールを既存のアカウントに適用する方法を示します。AWS Control Towerに登録する前に、そのアカウントのリソースのコンプライアンスを評価できます。また、適合パックを変更し、管理されていないアカウントに発見的ガードレールのサブセットを適用する方法を示します。最後に、適合パックを使用して、AWS Control Towerがデプロイされていないリージョンに存在するアカウントのリソースを管理する方法を示します。

Read More

面白法人カヤックにおけるビルディングブロックとしてのAmazon ECSの活用とサービス間連携の工夫

開発者がアプリケーションを開発・パッケージング・デプロイするための強力な手法として、コンテナ技術はその代表的な1つに挙げられます。そしてそのようなコンテナ技術における様々なユースケースをサポートすべく、AWSではAmazon Elastic Container Service (Amazon ECS) に代表される多様なサービスを提供しています。
面白法人カヤック の技術部/インフラエンジニアである 藤原 俊一郎 氏にゲスト投稿いただき、Amazon ECS をはじめとした各AWSサービスをビルディングブロックとして組み合わせて利用していく上での課題と、その解決策の実例を紹介します。

Read More

AWS Fargate と Prowler を使用して、AWS サービスに関するセキュリティ設定の検出結果を Security Hub に送信する

このブログ記事では、オープンソースのセキュリティツールである Prowler を AWS Security Hub と統合する方法を紹介します。Prowler は Amazon Redshift、Amazon ElasticCache、Amazon API Gateway および Amazon CloudFront などのサービスに関する多数のセキュリティ構成チェックを提供します。Prowler と Security Hub を統合すると、既存の Security Hub 連携、またはコンプライアンス標準で現在ではカバーされていないリソースに関する情報が提供されます。Prowler チェックを使用することで、Security Hub で既に提供されている既存の CIS AWS Foundations コンプライアンスや、パートナーソリューションから取り込むコンプライアンス関連の検出結果を補うことができます。 この記事では、Docker を使用して Prowler をコンテナ化し、サーバーレスコンテナサービス AWS Fargate でホストする方法について説明します。Prowler を Fargate で実行すると、インフラストラクチャのプロビジョニング、構成、拡張が不要になり、必要なときにのみ実行されます。コンテナはアプリケーションのコード、設定、および依存関係をどこでも実行できる1つのオブジェクトにパッケージ化する標準的な方法を提供します。サーバーレスアプリケーションは、サーバーのプロビジョニング、スケーリング、および管理を必要とせずに、ユーザーが定義したイベントに応じて自動的に実行およびスケーリングされます。

Read More

AWS Config ルールの評価結果を Security Hub にインポートする方法

2019年6月の re:Inforce 2019 で、AWS は AWS Security Hub の正式リリースを発表しました。AWS Security Hubは、お客様がコンプライアンスチェックとセキュリティの評価結果を AWS アカウント間で共有し、一元的に表示、管理できるセキュリティサービスです。AWS Security Hub は AWS Guard Duty、Amazon Inspector、Amazon Macie、および 30 以上の AWS パートナーセキュリティソリューションからセキュリティ検出結果をインポートできます。 デフォルトでは、Security Hubが有効になると、CIS AWS Foundations がお客様のアカウントにデプロイされます。 CIS AWS Foundations は、AWS アカウントを強化するためのセキュリティ設定のベストプラクティスのセットです。Security Hub が CIS AWS Foundations に含まれているルールでコンプライアンスチェックを実行するためには、AWS Security Hub を有効にしたアカウントと同じアカウントで AWS Config を有効にする必要があります。 AWS Security Hub を有効にする前に、独自の AWS Config ルールを作成したことがある場合は、それらを AWS Security […]

Read More

AWS Security Hubによる自動対応と修復

AWS Security Hub は、複数の AWS アカウントにわたるセキュリティとコンプライアンスの状態を可視化するサービスです。AWS のサービスおよび APN パートナーソリューションからの検出結果を処理することに加えて、Security Hub にはカスタムアクションを作成するオプションがあり、お客様は特定の検出結果に対して特定の対応と修復アクションを手動で呼び出すことができます。カスタムアクションは特定のイベントパターンとして Amazon CloudWatch Events に送信されます。CloudWatch Events ルールは、Lambda 関数や Amazon SQS キューなどのターゲットサービスをトリガーできます。 特定の検出結果タイプにマッピングされたカスタムアクションを作成し、そのカスタムアクションに対応する Lambda 関数を作成することにより、これらの検出結果のターゲットを絞った自動修復を実現できます。これにより、お客様は特定の検出結果に対して何の修復アクションを呼び出すかどうかを明確にできます。お客様は、これらの Lambda 関数を、人が介在しない完全に自動化された修復アクションとして使用することもできます。 本ブログでは、カスタムアクション、CloudWatch Events ルール、および Lambda 関数を作成する方法を紹介します。これらによって、CIS AWS Foundations ベンチマークの十数個のコンプライアンス検出結果を修復できます。また、検出結果を課題管理システムに送信し、セキュリティパッチを自動化するユースケースについても説明します。このソリューションをお客様がすぐにご利用できるように、AWS CloudFormation から必要なコンポーネントの大部分をデプロイします。

Read More

EC2 インスタンスメタデータサービスの拡張により、オープンなファイアウォール、リバースプロキシ、SSRFの脆弱性に対する防御を強化しました

10 年以上前にリリースして以来、Amazon EC2 インスタンスメタデータサービス ( IMDS ) は、安全でスケーラブルなアプリケーションの構築を支援してきました。IMDS は、一時的な認証情報へのアクセスを提供することで、クラウドユーザーにとって大きなセキュリティ上の課題を解決し、手動またはプログラムによってインスタンスに機密認証情報をハードコードしたり、配布したりする必要をなくしました。EC2 インスタンスにアタッチされた IMDS は、特別な「リンクローカル」の IP アドレス 169.254.169.254 で接続され、インスタンスで実行中のソフトウェアだけがアクセスできます。アプリケーションは IMDS にアクセスして、インスタンス、ネットワーク、およびストレージに関するメタデータを利用できます。また、IMDS は、インスタンスにアタッチされている IAM ロール による AWS 認証情報を使用できるようにします。 クラウドでアプリケーションを実行する場合、アプリケーションのセキュリティはインスタンスのセキュリティと同様に重要です。インスタンスで実行されているアプリケーションに脆弱性や設定ミスがあると、重大な問題が生じる可能性があります。アプリケーションセキュリティは多層防御において重要な役割を果たしますが、AWS はインスタンス内であっても、このような状況による被害の可能性を最小限に抑えるために、防御レイヤーを追加する場所をいつも検討しています。 本日、EC2 インスタンスメタデータサービスの v2( IMDSv2 )が利用可能になりました。既存のインスタンスメタデータサービス( IMDSv1 )は完全にセキュアであり、こちらも引き続きサポートします。しかし、IMDSv2 は、IMDS へのアクセスを試みる可能性がある4種類の脆弱性に対して新しい保護を追加します。この新しい保護は、IAM ロールの制限や、ローカルファイアウォールのルールを使用した IMDS へのアクセス制御など、既存の緩和策とシームレスに連携しますが、これらの緩和策よりも効果的に機能します。また、IMDSv2 をサポートする新しいバージョンの AWS SDK および CLI も利用可能です。 IMDSv2 の新機能 IMDSv2 では、すべてのリクエストがセッション認証によって保護されるようになりました。このセッションは、EC2 インスタンスで実行中のソフトウェアがリクエストするもので、ローカルに保存されている EC2 インスタンスのメタデータと認証情報にアクセスするためのものです。ソフトウェアは、IMDSv2 への単純な HTTP PUT リクエストを使用してセッションを開始します。IMDSv2 […]

Read More

AWS 環境でセキュリティレスポンスの自動化を始める方法

AWS では、AWS 環境内のセキュリティイベントについて自動化による迅速な検知と対応をすることをお勧めしてます。自動化は、検知と対応の速度を向上させることに加えて、AWS で実行するワークロードを拡大するときにセキュリティ運用もスケーリングするのに役立ちます。これらの理由から、セキュリティの自動化は、Well-Architected フレームワークとクラウド導入フレームワークの両方、およびAWS セキュリティインシデント対応ガイドで概説されている重要な原則です。 このブログでは、AWS 環境内に自動セキュリティレスポンスメカニズムを実装する方法を学習します。このブログには、一般的なパターン、実装に関する考慮事項、およびソリューション例が含まれます。セキュリティレスポンスの自動化は、多くの分野にまたがる広範なトピックです。このブログの目標は、基本的な考え方を紹介し、セキュリティレスポンスの自動化の開始を支援することです。

Read More

AWS KMS の新機能 公開鍵暗号によるデジタル署名

AWS Key Management Service で公開鍵暗号をサポートするようになりました。AWS SDK の新しい API を使ってアプリケーションデータを保護するために公開鍵、秘密鍵のキーペアを作成、管理、利用することが可能になりました。既に提供されている共通鍵暗号機能と同様に、公開鍵暗号の秘密鍵は KMS サービスの外側には出ないカスタマーマスターキー(CMK)として生成出来ます。また、データキーとしても生成可能で、データキーの秘密鍵の部分はアプリケーションに CMK で暗号化して渡すことが可能です。公開鍵 CMK の秘密鍵の部分は、AWS KMS のハードウェアセキュリティモジュールに格納されるため、AWS 従業員を含む誰も平文のキーマテリアルにアクセスすることは出来ません。AWS KMS のサポートする公開鍵のタイプは、 RSA 2048, RSA 3072, RSA 4096, ECC NIST P-256, ECC NIST P-384, ECC NIST-521, ECC SECG P256k1となります。 リリースの背景 システム間でデジタルメッセージの整合性を保証する一般的な方法はデジタル署名です。送信者は元のメッセージに暗号アルゴリズムに基づいた暗号鍵を使ってデータ構造を追加します。これにより、暗号鍵にアクセス出来る受信者は暗号学的にメッセージが改変されていないことを確認できます。受信者が送信者が使ったのと同じ暗号鍵にアクセス出来ない場合に、公開鍵暗号によるデジタル署名の仕組みが役立ちます。送信者は鍵の公開部分をすべての受信者に公開できますが、送信者は鍵の秘密部分を使って署名をコントロールすることが引き続き可能です。公開鍵暗号は信頼されたソースコードや認証認可用のトークン、文書の電子署名、エレクトリックコマースのトランザクション、セキュアメッセージングなどに利用されています。AWS KMS は 基本的なデジタル署名と言われている機能をサポートします。これは署名オブジェクトの中に ID 情報が含まれていないものです。一般的に ID 情報をデジタル署名に添付する方式はデジタル証明書です。もしお客様のアプリケーションが署名や署名確認のためにデジタル証明書を必要としている場合には、AWS Certificate Manager のプライベート CA 機能をおすすめします。 このサービスはデジタル署名アプリケーションのためにプログラム的に暗号鍵を含んだ証明書を作成してデプロイする機能を提供します。典型的なデジタル証明書を使うアプリケーションは、Webサーバー上で通信をセキュアにするために使われるTLS 処理です。 AWS KMS […]

Read More