Cognitoでは認証をしていないユーザー(ゲストユーザー)にロールを設定することができるので、その機能を使ってみました。この機能をAPI Gatewayに使用することで、未認証ユーザ用のクレデンシャルを付与しないとAPIにアクセスできないため、認証は不要だけどどこからでもアクセスされるのは防ぎたいという要件を満たすことができます。 ポイント Cognitoの未認証ユーザの機能を実装するにあたり、 […]
AWSのCodeシリーズでCI/CDを構築する際に、異なるアカウントのS3からファイルをコピーしたいという要件があり、少しハマったのでその解決方法をメモ。 やり方は3つある “s3 クロスアカウント”などで検索すると、AWS公式のサイトがヒットして、やり方が書いてあります。 https://aws.amazon.com/jp/premiumsupport/knowledge […]
AWS IoT Coreを使ってみたのですが、ネットで情報を漁っていると意外と古い&ざっくりした情報が多く、トピックごとの権限を設定するのに少し詰まったので、備忘録として残しておきます。 AWS IoT Coreのリソース作成 まずはAWSのマネジメントコンソール上で、IoT Coreの設定を行っていきます。以下のサイトで詳しく書いてあったので、参考にしました。「AWS IoTにモノを登録 […]
EKSを導入することになったので、コンテナの復習としてECSの使い方をメモ。80番ポートにアクセスすると文字列を返却する超簡単なexpressのイメージを作成しているので、今回はそれを使う。 イメージをローカルで動作確認 以下コマンドで、コンテナが立ち上がる。ブラウザでlocalhostにアクセスすると、「Hello World」と表示される。–nameの箇所は任意。 確認できたら、以 […]
タイトルの通り。作成してみたので、ブログに残しておきます。前提として、CodeBuildやCodePiplelineのIAMロール(S3へのアクセス権限の付与)などはされていること、CodeBuild上でartifactを生成するbuildspec.ymlは作成されているものとします。これらの情報は、検索すればたくさん出てくるはず。
モジュールのインストール .envファイルを作成し、環境変数を設定 以下をserverless.ymlに追記 以下のような形式でjsファイルから値を取得できる
要約 基本、認証に使用するIDトークン(JWT)にユーザ情報が含まれているので、それをbase64デコードしてやればOK。ただし、クライアントに見せたくない(=JWTに含めたくない)属性の場合は、少し工夫が必要という話。 内容 JWTから取得する場合 以下、LambdaをNode.jsで書いた場合の参考 以下のパラメータが得られる。(値は全て書き替えてます。)custom:testというのは、手動 […]
概要 仕事でCloudFormationを使ってシステム構築する機会があるので事前に勉強。今回構築するのは、以下のような要望に対応する構成。 普段は1台のみEC2インスタンスを起動しておきたい インスタンスがフェイルした場合は別AZで自動的に復旧したい イメージは以下。ELBでヘルスチェックを行い、異常時はAutoScalingを使って、現状空になっているサブネットにEC2を構築。今回は、VPCと […]
Lambdaの起動のトリガとなるサービスは、API Gatewayはじめ、いろいろありますが、今回は、疎結合なシステムを作成する際によく使用する、SQSをトリガにしてLambdaで処理をしてみました。処理といっても、SQSのメッセージをCloud Watch Logsに吐き出すだけです。 プロジェクトの作成 Serverless FrameworkのインストールやAWS Credentialsの設 […]
ユーザ認証を実装する際に、これからCognitoを使用する機会が多くなりそうなので試しに使ってみました。今回は、CognitoのUser Poolsを使って認証の一連の流れを実装してみました(サインアップ→アクティベート→サインイン)。今回は実装しませんが、AWSリソースへのアクセス許可(認可)に関してはFederated Identitiesを使うみたいです。 AWSマネジメントコンソールでの設 […]