Amazon Web Services ブログ

Category: General

VPC設定にAWS Lambda IAM条件キーを使用する

本投稿は、Senior Developer Advocate, Julian Woodの寄稿によるものです。 AWS Identity and Access Management(IAM)条件キーを使用して、AWS Lambda 関数のAmazon Virtual Private Cloud(VPC)設定を制御できるようになりました 。 IAM条件キーを使用すると、IAMポリシーステートメントが適用される条件をさらに絞り込むことができます。関数を作成および更新する権限を付与するときに、IAMポリシーで新しい条件キーを使用できます。 VPC設定の3つの新しい条件キーは、lambda:VpcIds、lambda:SubnetIds、そして、 lambda:SecurityGroupIds です。キーにより、ユーザーが1つ以上の許可されたVPC、サブネット、およびセキュリティグループに接続された関数のみをデプロイできるようにすることができます。ユーザーが許可されていないVPC設定で関数を作成または更新しようとすると、Lambdaは操作を拒否します。 LambdaとVPCの関係を理解する Lambdaの実行環境はすべて、Lambdaサービスが所有するVPC内で動作します。 Lambda関数は、Lambda API を呼び出すことによってのみ呼び出すことができます。関数が実行される実行環境への直接のネットワークアクセスはありません。 非VPC接続のLambda関数 Lambda関数がカスタマーアカウントのVPCに接続するように構成されていない場合、関数はパブリックインターネットで利用可能なすべてのリソースにアクセスできます。これには、他のAWSサービス、APIのHTTPSエンドポイント、またはAWS外のサービスとエンドポイントが含まれます。関数はVPC内のプライベートリソースに直接には接続できません。 VPC接続のLambda関数 Lambda関数を設定して、カスタマーアカウントのVPC内のプライベートサブネットに接続できます。 Lambda関数がカスタマーアカウントVPCに接続するように設定されている場合も、そのLambda関数は引き続きAWS LambdaサービスVPC内で実行されます。この場合、Lambda関数はすべてのネットワークトラフィックをカスタマーアカウント内VPC経由で送信し、このカスタマーVPCのネットワーク制御に従います。これらのコントロールを使用して、セキュリティグループ とネットワークACL を設定し関数が接続可能な範囲を制御できます。Lambda関数からの送信トラフィックは独自のネットワークアドレス空間から送信され、VPCフローログ を使用してネットワークを可視化できます。 パブリックインターネットを含むネットワークロケーションへのアクセスを制限できます。 カスタマーアカウント内のVPCに接続されたLambda関数は、デフォルトではインターネットにアクセスできません。関数にインターネットへのアクセスを許可するには、送信トラフィックをパブリックサブネットのネットワークアドレス変換(NAT)ゲートウェイ にルーティングできます。 Lambda関数を設定してカスタマーアカウント内のVPCに接続すると、AWS Hyperplane によって管理される共有Elastic Network Interface(ENI)が使用されます。この接続により、VPC-to-VPC NATが作成され、クロスアカウントに接続されます。これにより、Lambda関数からプライベートリソースへのネットワークアクセスが可能になります。 AWS Lambda サービスVPCからVPC-to-VPT NATを利用しカスタマーVPCへ Hyperplane ENIは、Lambdaサービスが制御し、カスタマーアカウント内のVPCに存在するマネージドネットワークインターフェースリソースです。複数の実行環境がENIを共有して、カスタマーアカウントのVPC内のリソースに安全にアクセスします。カスタマー側からのLambda実行環境(LambdaサービスVPC内)への直接のネットワークアクセスは出来ないことにご注意ください。 ENIはいつ作られるのか? Lambda関数が作成されるか、そのVPC設定が更新されると、ネットワークインターフェイスの作成が行われます。関数が呼び出されると、実行環境は事前に作成されたネットワークインターフェースを使用し、そのインターフェースへのネットワークトンネルをすばやく確立します。これにより、コールドスタート時のネットワークインターフェースの作成と接続に関連していたレイテンシが削減 されています。 どのくらいの数のENIが必要か? ネットワークインターフェイスは実行環境全体で共有されるため、通常、関数ごとに必要なネットワークインターフェイスはほんの一握りです。アカウント内の関数全体で一意のセキュリティグループとサブネットのペアごとに、個別のネットワークインターフェイスが必要です。同じアカウントの複数の関数が同じセキュリティグループとサブネットのペアを使用する場合、同じネットワークインターフェイスを再利用します。このように、複数の関数を備えているが、ネットワークとセキュリティの構成が同じである単一のアプリケーションは、既存のインターフェース構成の恩恵を受けることができます。 関数のスケーリングは、ネットワークインターフェイスの数に直接関係しなくなりました。Hyperplane […]

Read More

AWS Lambda関数の状態の追跡

本投稿は、AWS Lambda の Senior Developer Advocate, Chris Munns の寄稿によるものです。 AWS Lambda関数は、AWS Identity and Access Management(IAM)ロールやAmazon Virtual Private Cloud(Amazon VPC)、ネットワークインターフェイスなど、正常に実行するために他のAWSサービスのリソースを必要とすることがよくあります。関数を作成または更新すると、Lambdaはユーザーに代わって、関数の実行を可能にするのに必要なリソースをプロビジョニングします。ほとんどの場合、このプロセスは非常に高速で、関数を呼び出したり変更する準備はすぐにできます。ただし、この種のアクションで時間がかかってしまうこともあります。 リソースが作成または更新されているときの関数の現在の「状態」をより把握できるように、AWS LambdaのLambda APIアクションによって返される関数情報にいくつかの追加属性が含まれるようになりました。この変更は、関数の呼び出し方法やコードの実行には影響しません。 この投稿では、Lambda関数が到達する可能性のある多様な状態、それらに遷移する条件、およびLambdaサービスが関数をさまざまな状態に遷移させる方法について説明します。詳細については、AWS Lambdaのドキュメント、Lambda APIを使用した関数の状態のモニタリング をご覧ください。 Lambda関数の状態について Lambda関数が通過する主なライフサイクルは2つあります。これは、Lambda関数が初めて作成されるのか、それともすでに存在し更新されるのかによって異なります。フローに入る前に、関数の状態について説明します。 Pending Pendingは、すべての関数が作成されたときに通過する最初の状態です。Pending中にLambdaはリソースを作成または設定しようとします。関数はアクティブ状態のときにのみ呼び出すことができるため、関数を操作する呼び出しやその他のAPIアクションは失敗します。関数作成直後に関数の呼び出しや更新をするように構築された自動化処理は、関数がPendingからActiveに移行したかどうかを最初に確認するように実装する必要があります。 Active 関数の最初の作成中にリソースの構成またはプロビジョニングが完了した後、Activeになります。関数は、Active状態でのみ呼び出すことができます。 関数の更新中、状態はActiveに指定されたままですが、Activeな関数の更新の状態を表すLastUpdateStatusと呼ばれる別の属性があります。更新中、呼び出しは、更新操作が正常に完了するまで関数の以前のコードと設定内容にて実行され、更新完了後、新しいコードと設定が使用されます。 Failed Failed状態は、リソースの設定またはプロビジョニングのいずれかが失敗したことを表す状態です。 Inactive Lambdaサービスが設定されたリソースを回収するのに十分な時間アイドルになっている関数は、Inactive状態に移行します。Inactive状態の関数を呼び出すと、失敗し、それらのリソースが再作成されるまで関数はPending状態に設定されます。リソースの再作成に失敗した場合、関数はInactive状態に戻ります。 すべての状態について、StateReasonとStateReasonCodeの2つの属性が設定されています。どちらも問題のトラブルシューティングのために存在し、現在の状態に関する詳細情報を提供します。 LastUpdateStatusについて InProgress InProgress状態は、既存の関数で更新が行われていることを示します。関数がInProgress状態にある間、関数呼び出しは関数の以前のコードと設定にルーティングされます。 Successful Successful 状態は、関数の更新が完了したことを示します。関数が更新されると、次の更新までこの状態がセットされたままになります。 Failed Failed状態は、関数の更新が失敗したことを示します。変更は中止され、関数の以前のコードと設定がActive状態のままになり使用可能となります。 すべてのLastUpdateStatus値には、LastUpdateStatusReasonとLastUpdateStatusReasonCodeの2つの属性が設定されています。これらは、更新に関する問題のトラブルシューティングに役立ちます。 関数状態のライフサイクル ある状態から別の状態への関数状態の遷移は、関数に対して実行されるアクションに完全に依存しています。関数の状態から状態に手動で移動する方法はありません。 関数の状態のライフサイクル   すべての関数について、主要な状態のライフサイクルは次のようになります。 作成時に、関数はPending状態になります 必要なリソースが正常に作成されると、Active状態に移行します リソースまたは関数の作成が何らかの理由で失敗すると、Failed状態に移行します […]

Read More
Weekly AWS

週刊AWS – 2020/8/17週

みなさん、こんにちは。ソリューションアーキテクトの下佐粉です。 今週も週刊AWSをお届けします。 毎日本当に暑い日が続きますね。さて初のオンライン開催となるAWS Summit Onlineまであと2週間少々になりました。オンライン開催ですので、全国どこからでも、涼しい部屋からご参加いただけますし、オンデマンド視聴でいつでも観ていただくことが可能になっています。セッション申し込みが開始になっていますので、ぜひサイトをチェックしてみてください。私は「Architecting and Building – ログデータ用のデータレイク&分析環境をクイックに構築するには?」と「Amazon QuickSight BASIC ハンズオン ~ QuickSight の基本操作を 50 分で学ぶ~」を担当していますので、よろしければご覧になってください。 AWS Summit Online 2020 年 9 月 8 日 (火) ~ 9 月 30 日 (水) オンラインで開催 それでは、先週の主なアップデートについて振り返っていきましょう。

Read More

【開催報告】AWS Autotech Forum 2020 Online #1

はじめに みなさんこんにちは、ソリューションアーキテクトの福嶋、渡邊です。AWS では 2018 年・2019 年と実施してきた自動車業界向けクラウドテクノロジーカンファレンス「AWS Autotech Forum」を夏と冬の2日間に拡大し、「AWS Autotech Forum 2020 Online #1」を8/7にオンラインにて開催させていただきました。オンライン開催第一回目となる今回は、MaaS、自動運転開発、コネクテッドカー、エッジコンピューティング、マップ/ロケーションサービス等の分野において、先進的な取り組みを志向する企業のビジネスリーダー、エンジニアの方々に向けて、お客様の新たなビジネスをご支援させていただく中で学んできた、汎用的に利用可能なプラクティスやテクノロジーの活用シーンを AWSのソリューションアーキテクトからご紹介させていただきました。 オープニング 自動車業界における AWS の取り組みとお客様事例 ソリューションアーキテクト安藤から皆様の新しいビジネスの企画立案に役立てていただくために、 AWS の活用事例や取り組みについてご紹介しました。 テクノロジートレンドの CASE (Connected/Autonomous/Shared/Electric) はすでに多くのお客様が取り組まれており、ビジネストレンドである MaaS への注目度も日増しに高まっています。 MaaS にはエマージングビジネスの側面と企業間アライアンスによる新プラットフォームビジネスの側面があり、AWS を活用いただくことで「価値創出への集中」「最新技術の活用」「試行錯誤の繰り返し」といったメリットをご享受いただけます。 セッションの中では実際に、 AWS をご活用いただいている企業の事例や CES 2020 において Amazon と AWS が共同で発表した自動運転で走行する電気自動車におけるカーシェアリングサービスのコンセプトデモを例に AWS をご利用いただくことによるメリットがどのようなビジネス効果を生み出しているかをご説明しました。 登壇資料: 自動車業界における AWS の取り組みとお客様事例 MaaS関連セッション AWS Connected Mobility Solution (CMS) のご紹介 ソリューションアーキテクト高野からは、コネクテッドモビリティのシステム開発に関する AWS […]

Read More

[AWS Black Belt Online Seminar] Amazon Macie 資料及び QA 公開

先日 (2020/08/12) 開催しました AWS Black Belt Online Seminar「Amazon Macie」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20200812 AWS Black Belt Online Seminar Amazon Macie from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. S3 の設定変更を検知できるとのことですが、AWS Config で検知する場合との違いはございますでしょうか? A. 検知は AWS Config とは別個の仕組みとなります。Macie で検知出来る変更の一覧がこちらにございます。 Q. カスタムを利用しても Macie で日本語は検知できない認識で問題ないでしょうか? A. UTF-8 文字コードのファイルが対象であれば、カスタム識別子を使ってキーワード、正規表現に日本語や日本語とマッチするルールを指定して検知させることが可能です。 Q. Organizations を組んでいる親子アカウントがあった場合、無料試用期間は、親と子でそれぞれ使えますか?親子まとめて1アカウント分という計算になりますか? A. 親子まとめてのカウントの計算となります。 Q. たとえばクレジットカードをコピー機でスキャンして PDF 化したファイルなど、画像データになった機密情報の識別は可能でしょうか? A. 画像データのスキャンは現在は出来ません。 […]

Read More

AWS IoT Deep Dive – 新しいAWS IoTセミナーシリーズを開始します

こんにちは、IoTソリューションアーキテクトの飯塚です。本ブログ記事では、来月から開催する新しいAWS IoTセミナーシリーズについてお知らせさせてください。 セミナー概要 新しいAWS IoTセミナーシリーズは、AWS IoT Deep Diveというタイトルにしています。本セミナーはこのタイトル通り、お客様がIoT製品やサービスを設計・開発する際のよくある課題や考慮すべき事項を共有し、AWSによるソリューションをより深く・詳細にお伝えするセミナーです。 お客様がIoT製品やサービスを設計・開発する際のよくある課題や考慮すべき事項などの技術トピック情報を共有します。また、それらをAWSで解決するためのAWS IoTや関連AWSサービスとそれらの機能について、AWSのIoTエキスパートが詳細に解説します。それらのサービスや機能のベストプラクティスや、ベストプラクティスに従ったAWS上での最適な構成についてもお伝えします。さらに本セミナーでは、IoT 関連のサービスや機能最新情報についても日本語で皆さんにお届けしていきます。

Read More
Weekly AWS

週刊AWS – 2020/8/10週

ここしばらくは猛暑を通り越して酷暑な日々が続いておりますが、お元気でしょうか。 ソリューションアーキテクトの小林です。 最近のはやりに乗ってワーケーションをしてみたいなと思い始めています。いつも自宅で仕事をしていると変化に乏しいので、いつもと違う環境で気分を変えて仕事に取り組むのもいい経験かもな、というわけです。こう考えると、会社に通勤して仕事をするのはある意味で刺激的な体験だったのだなぁと思わされますね。 それでは、先週の主なアップデートについて振り返っていきましょう。今回は大事なものが多かったので大盛りでお届けです。

Read More

AWS Organizationsによる、日本準拠法に関する AWS カスタマーアグリーメントの一括変更について

みなさん、こんにちは。アマゾン ウェブ サービス ジャパン、 シニアアドボケイトの亀田です。 今日は、AWS Organizationsによる、日本準拠法に関する AWS カスタマーアグリーメントの一括変更について、日本のお客様にとって重要なアップデートをお届けします。AWS Organizationsは複数のAWSアカウントにおいて、請求の一元管理や、アクセス、コンプライアンス、セキュリティの制御、AWS アカウント間でのリソースの共有などを実現するサービスです。 AWSのアカウントは開設直後、”AWS カスタマーアグリーメント”は準拠法、かつ管轄裁判所が米国ワシントン州法となっています。2017年11月に我々は、お客様が自動で”日本準拠法に関する AWS カスタマーアグリーメント変更契約”を締結可能とするAWS Artifactの機能をリリースしました。 https://aws.amazon.com/jp/blogs/news/how-to-change-aws-ca-by-artifact/ これによりお客様は、自身で複雑な処理を行うことなく、AWSのマネージメントコンソール上でAWS カスタマーアグリーメントの変更契約締結が可能となり、準拠法を日本法に変更し、更に、同契約に関するあらゆる紛争に関する第一審裁判所を東京地方裁判所に変更することができるようになりました。 この作業はアカウント単位で行う必要があり、企業内で複数のAWSアカウントを保有し、AWS Organizationsで管理されている場合、AWSアカウントの数だけその作業を行う必要がありましたが、このアップデートにより、マスターアカウントで作業を行うと、一括してメンバーアカウントへその設定が適応されます。また、設定作業後、新たに新規で追加されたメンバーアカウントにもその設定は自動で反映されるため、従来個別に作業を行う必要があったときに懸念されていた、作業漏れを防ぐことも可能です。 また、リセラーなど実運用にいおけるマスターアカウントとメンバーアカウントの管理母体が異なる場合は、本機能によるAWS カスタマーアグリーメント変更契約の一括締結には十分な注意を払う必要があります。 使い方は簡単です。 マネージメントコンソールからAWS Artifactにアクセスし、”契約”を開きます。”日本準拠法に関するAWSカスタマーアグリーメント変更契約(AWS Organizations用)を選びます。 その後画面右上の”契約の受諾”ボタンを押すと、”NDAを受諾して契約のダウンロードする”という画面が表示されますので、契約書をダウンロードします。 その後再度”契約の受諾”ボタンを押し、表示される確認ダイアログに同意すると、以下のようにAWSカスタマーアグリーメント変更契約が締結され、準拠法が切り替わります。 その他の詳細については下記のページをご参照ください。 https://aws.amazon.com/jp/artifact/faq/ – シニアアドボケイト 亀田

Read More
Amplify Meetup #01 開催!

【全資料まとめ&開催報告】Amplify Meetup #01

みなさんこんにちは!アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクトの木村公哉(@kimyan_udon2)です。梅雨が明けて、気づけばお盆も明けた今日この頃ですが、皆様いかがお過ごしでしょうか? 7月31日に「Amplify Meetup #01」を開催しました。「Amplify Meetup」はAWS AmplifyのユーザーとAWS Amplifyに興味のあるエンジニアのみなさんでLTなどを通して盛り上がるコミュニティーイベントです。今回初めて開催しましたので、開催報告と合わせて「Amplify Meetupとは?」という点についてもご紹介いたします。

Read More