AWS

Windows10 + aws-vault + AWS CDK + Serverless Frameworkにて、最低限の権限を持つユーザでAWS Lambda + API GatewayなAPIを作ってみた

前回の記事で、 aws-vault とAWS CLIを連携させて使えるようになりました。 Windows + aws-vaultにて、AWSのアクセスキーを保護し、 AWS CLIを AssumeRole で使えるようにしてみた - メモ的な思考的な 今回は、 aws-vault + Serverless Frameworkを連携させ…

Windows + aws-vaultにて、AWSのアクセスキーを保護し、 AWS CLIを AssumeRole で使えるようにしてみた

AWS

AWSのIAMアカウントを保護するために、 IAMユーザにはほとんど権限を与えない MFAは有効化 IAMユーザはIAMグループに所属 IAMグループに対し、特定のIAMロールへAssumeRoleするIAMポリシーを割り当て を行ったりします。 また、aws-vault により、ローカルに…

AWS CDKで、cdk deployしたらエラー「NoSuchBucket: The specified bucket does not exist」

先日、S3に不要なバケットがたまっていたため、バケットを全削除をするスクリプトを作成・実行しました。 その後、AWS CDK + Pythonで、 cdk deploy したところ、 ❌ <your_backet_name> failed: NoSuchBucket: The specified bucket does not exist The specified bucket does </your_backet_name>…

AWS CDKで、cdk deployしたら「Unable to resolve AWS account to use」エラー

AWS CDKを使って cdk deploy したところ $ cdk deploy Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment というエラーが発生したため、対応した時のメモ。 環境 macOS 10.13.6 Pyt…

AWS CDK + Pythonで、ネストした AWS StepFunctions のワークフローを作ってみた

今年の7月にAWS CDK (Cloud Development Kit) がGAとなりました。 AWS クラウド開発キット (CDK) – TypeScript と Python 用がご利用可能に | Amazon Web Services ブログ APIリファレンスも公開されているため、これでPythonを使ってAWSのリソースを作成す…

AWS Amplifyで、カスタムカテゴリを作って、カスタムリソースを追加してみた

今まで、Amplifyが用意する以外のリソースを使いたい場合は、 <project_root>/amplify/backend/api/<API name>/stacks ディレクトリの中に、CloudFormation(CFn)ファイルを作成して対応してきました。 AWS AppSync + Amplify JavaScript + CustomResourcesで、既存のDynamoDBなどをDa</api></project_root>…

AWS Amplifyで、amplify env を使って、開発環境の共有と分離をしてみた

開発をしていると、AWS Amplifyを使ったソースコードをGithubなどでチームで共有することがあります。 AppSync APIやDynamoDBなどの環境を同一にして、チームで開発する方法を探したところ、公式ドキュメントに amplify env を使う方法が記載されていました…

AWS AppSyncにて、同じ内容でMutationした場合に、Subscriptionがどうなるかを試してみた

AWS AppSyncでは、Mutationした時の通知をSubscriptionで受け取れます。 リアルタイムデータ - AWS AppSync ただ、DynamoDBのレコードと同じ内容でMutationした場合でも、Subscriptionがどのように動作するのか気になったため、試してみた時のメモを残します…

AWS Amplify CLIで、.graphqlconfig.ymlを使って、schema.jsonやqueries.jsonなどの保存場所を変更する

Amplify CLIで amplify push することで、必要に応じてAppSyncのスキーマファイル ( <project_root>/amplify/backend/api/"api_name"/schema.graphql ) を元に、Amplify Framework向けのソースコードを生成してくれます。 $ amplify push Current Environment: dev | Categ</project_root>…

AWS AppSync + Amplifyで、Subscriptionに引数を追加し、一部のみ通知を受け取ってみた

AWS AppSyncでは、Subscriptionを使うことでMutationに対する通知を受け取ることができます。 リアルタイムデータ - AWS AppSync また、AWS AppSyncにAWS Amplifyを組み合わせた場合でも、Amplify FrameworkのSubscriptionが使えます。 Subscription | AWS A…

AWS AppSync + Amplifyで、AWS_IAM認証を使って、認証されていないユーザーに対してQueryを許可してみた

AWS AppSyncを使ってGraphQL APIを公開する場合、 Default authorization mode が必須なため、何らかの方法での認証を行う必要があります。そこで、AWS_IAM認証を使って、認証されていないユーザーに対してQueryを許可してみた時のメモを残します。

AWS Amplify CLIの amplify auth push の挙動について

AWS Amplify CLI のREADMEを見ると、 amplify auth push Provisions only Auth cloud resources with the latest local developments. https://github.com/aws-amplify/amplify-cli/tree/master/packages/amplify-category-auth という記述がありました。 気…

AWS Amplifyで、既存のAmazon Cognitoを使う方法を探してみた

AWS Amplifyでは、Authentication moduleを使うことで、簡単にAmazon Cognitoの新しい環境が作れます。 Authentication ただ、Amplify CLIを使って既存のAmazon Cognito環境を利用する方法が見当たらなかったので、調べた時のメモを残します。 目次 環境 結…

AWS AppSync + Amplify JavaScript + CustomResourcesで、既存のDynamoDBなどをDatasourceとしたリゾルバーを作成する

AWS Amplify JavaScriptを使ってAWS AppSync APIを作成する場合、 amplify add api した直後はDynamoDBのテーブルが新規作成されます。 既存のDynamoDBを使いたい場合は、 amplify push でAPIをデプロイ後にAppSync Consoleにて内容を編集することもできます…

AWS AppSyncのリゾルバで、AWS CognitoのグループやHTTPリクエストヘッダを使った認可処理を書いてみた

前回、Schemaで @aws_auth や @ aws_cognito_user_pools などを使って認可処理を書いてみました。 AWS AppSyncのSchemaで、認証・認可系ディレクティブの @aws_auth や @aws_cognito_user_pools などを試してみた - メモ的な思考的な ただ、複数認証時に @aw…

AWS AppSyncのSchemaで、認証・認可系ディレクティブの @aws_auth や @aws_cognito_user_pools などを試してみた

AWS AppSyncのSchemaには、簡単にユーザー認証・認可を行える @aws_auth @aws_api_key @aws_iam @aws_oidc @aws_cognito_user_pools などのディレクティブが用意されています。 そこで、実際に試してみた時のメモを残します。 目次 環境 長いのでまとめ 認証…

AWS AppSyncのPipeline Resolverを使って、複数のDynamoDBの値をマージして返すAPIを作成してみた

前回・前々回と、単一のデータソースから値を取得するAWS AppSync APIを作成しました。 Pythonで、 AWS AppSyncのquery・mutation・subscriptionを試してみた - メモ的な思考的な Pythonで、AWS Lambda をData sourceに持つ AWS AppSync API を呼んでみた - …

Pythonで、AWS Lambda をData sourceに持つ AWS AppSync API を呼んでみた

前回、Data sourceがDynamoDBである AWS AppSync APIをPythonで呼んでみました。 Pythonで、 AWS AppSyncのquery・mutation・subscriptionを試してみた - メモ的な思考的な ただ、AWS AppSync のData sourceでは、DynamoDBの他 Amazon Elasticsearch AWS Lam…

Pythonで、 AWS AppSyncのquery・mutation・subscriptionを試してみた

最近 AWS AppSync にふれる機会がありました。 そこで今回は、AWS AppSyncのGraphQLインタフェースを使って、Pythonでquery・mutation・subscriptionを試してみましたので、メモを残します。 目次 環境 長いのでまとめ AWS AppSyncでAPIを作る mutationの実…

「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」をBoto3とAnsibleで写経してみた

社内ではAWSが普通に使われているため、常々基礎からきちんと学びたいと考えていました。 そんな中、書籍「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」の社内勉強会が開催されることになりました。 Amazon Web Services 基礎からのネ…