- 1. AWS CodeBuildでSnyk IaCを使用してみた
- 2. 【AWS】IAMユーザの作成手順を分かりやすく解説
- 3. awsでec2インスタンスにsshできるようになるまで
- 4. EC2 自動起動停止
- 5. AWS CDK deploy時 fail: No ECR repository が発生した
- 6. [その6]AWS-SAA-躓いたメモ
- 7. AWS LambdaのLayerを利用する3つの種類
- 8. AWS IAMについてメモ
- 9. 【AWS】運用支援ツール
- 10. Redshift の自動パフォーマンスチューニング機能まとめ
- 11. AWS不正利用から反省したプライベートのセキュリティ意識
- 12. 【AWS】ElastiCache
- 13. EC2 のオートスケーリング設定 (ハンズオン)
- 14. APIサーバが不要!Hasuraを導入してみた結果と本番運用について
- 15. ブログサイトをAWSで公開する
- 16. AWSのアカウント間で定期的にS3オブジェクトをコピー
- 17. AWSアソシエイト 未経験者がつまづいたポイントpart4
- 18. Well-Architected Framework 「セキュリティ」の設計原則
- 19. Inspector v2の脆弱性診断内容を「Slackベース」で管理する
- 20. AWS Hands-on for Beginners 〜Serverless 編〜 #2
- 21. AWS: Amplify の使い方 (その2)
AWS CodeBuildでSnyk IaCを使用してみた
# はじめに
はじめまして!たかくにと申します!
この記事は「Snykを使って開発者セキュリティに関する記事を投稿しよう!」というテーマに沿って投稿しています!
https://qiita.com/official-events/786b978e4a1a28fad312
普段もIaCやAWSを中心にブログを書いているので、ご覧いただけると嬉しいです。
https://dev.classmethod.jp/author/takakuni/
突然ですが、みなさん!IaC使っていますかー? IaC便利ですよね!
Googleトレンドでも、年々IaCの人気が増加していることが伺えます。
![スクリーンショット 2022-07-16 13.51.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/371570/53f9e7b6-83c2-e042-c3d6-3e92bdb2fefb.png)
では、IaCで使っているコードのセキュリティを気にしていますか?
気にしていなくても、これから気にすれば大丈夫
【AWS】IAMユーザの作成手順を分かりやすく解説
## 【はじめに】
– AWSの学習をしているが、「IAM」って何?
– AWS無料枠でIAMを操作してみたい今回はAWS初学者の方に向けて、IAMユーザの作成手順を分かりやすく解説していきます。
※AWS無料枠の範囲内で操作できるので、この機会にIAMの基本を押さえてしまいましょう。### 本記事の内容
– なぜIAMユーザを作成するのか?
– IAMが提供する機能とは?
– ユーザとグループ
– 実際にIAMユーザを作成する## 【なぜIAMユーザを作成するのか?】
AWSのサービスを利用するには、まずリソースを管理するためにAWSアカウントを作成する必要があります。
AWSアカウントを作成することで、アカウントごとに独立した環境が用意されます。
併せて、**ルートユーザ**が自動的に作成されます。
ルートユーザはAWSアカウントに関連するすべてのサービスを操作できる権限を持っているため、通常は必要な権限のみに制限したユーザを作成して、開発などを行う必要があります。
IAM(Identity and Access Management)はAWSのリソースへ
awsでec2インスタンスにsshできるようになるまで
タイトルの通りec2インスタンスを作ってそこにsshするまでの記事です
間違いがあれば指摘いただけると嬉しいです## まずはVPCを構築
![ap-northeast-1.console.aws.amazon.com_vpc_home_region=ap-northeast-1 (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740112/85e97883-cad9-19b6-cb50-5ec27f4960e4.png)
![ap-northeast-1.console.aws.amazon.com_vpc_home_region=ap-northeast-1 (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740112/4b886867-693c-fb69-b3f6-b23199afdfb2.png)
![ap-northeast-1.console.aws.amazon.com_vpc_home_
EC2 自動起動停止
# EC2 自動起動停止
## 概要
– EC2のインスタンスをcronで自動で起動、停止するように設定する。
– 備忘録としてAWSのコンソールの新UIで設定する方法を残すもの。
– EC2のインスタンスを必要ないときに停止して節約する。## 前提
– EC2インスタンスを起動できる。## 手順
1. `IAM`で`Systems Manager`を操作できるサービスロールを作成する。
2. `Amazon EventBridge` で`EC2`を自動起動するように設定する。
3. `Amazon EventBridge` で`EC2`を自動停止するように設定する。### `IAM`で`Systems Manager`を操作できるサービスロールを作成する。
1. `IAM` → `ロール` → `ロール作成`のボタンを押す。
![.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/477896/e8f6d3be-3634-76e2-aee6-31d4edb1eead.png)2. ①の
AWS CDK deploy時 fail: No ECR repository が発生した
## 発生した事象
“`sh
cdk deploy –no-path-metadata –no-asset-metadata –debug
“`を実行した際に
“`
Failed to publish one or more assets. See the error messages above for more information.
“`として失敗した.
内容を確認すると
“`
fail: No ECR repository named ‘cdk-hnb659fds-container-assets-***-***’ in account ***. Is this account bootstrapped?
“`
といったエラーも発生していた.## 解決方法
1. `cdk bootstrap` をすると作成されるCloudFormation スタック: `CDKToolkit` を削除する
※ 必要に応じて, アセットを出力するS3バケットを削除する
1. `cdk bootstrap` を実行する## 環境
– CDK
[その6]AWS-SAA-躓いたメモ
## スループット最適化HDD(st1)かプロビジョンドIOPS SSD(io1)どちらを選ぶか問題
– プロビジョンドIOPSは`データベース`として使う
– スループット最適化HDDは`log・DWH・ビックデータ`## AutoScalingのライフサイクル
1. インスタンス起動(`Pending`)
1. AutoScalingGroupに追加(`Pending`)
1. 起動完了(`InService`)
1. AutoScalingGroupから除外(`Terminating`)
1. インスタンス削除(`Terminating`)
1. 完全削除(`Terminating`)## ELBの`SpilloverCount`は拒否されたリクエスト数
リクエストが最大の`SuergeQueueLength`を超えると`SpilloverCount`が拒否されたリクエストの測定を開始する## 特定のIPアドレスからのアクセスを拒否したい場合は、`ACL`
SGは許可ルールのみサポートなのでIPアドレスからアクセス拒否することはできない。
## ELBヘル
AWS LambdaのLayerを利用する3つの種類
AWS LambdaのLayerの作り方、使い方をよく忘れるので、備忘録として残しておきます。
以下の3つのことができるLayerを作ります。3つを選択的またはすべて含めたLayerにもできますので、必要なものをLayerに選択して含めてください。
対象言語はNode.jsの場合です。① 自作のクラスを含める
② Npmモジュールを含める
③ 実行ファイルを含める# 準備
まず適当なフォルダを作成します。例えば、layer_testというフォルダを作ります。以降、ここをルートフォルダとみなします。
“`
> mkdir layer_test
> cd layer_test
“`作業環境に、Node.jsがセットアップされている前提です。
バージョンは、Lambdaで指定予定のバージョンに合わせます。今回は、v14系にしました。# ①自作のクラスを含める
こんな感じの自作のクラスを含めます。
先ほど作成したルートフォルダに作成します。“`
> vi hello.js
“`中身はこんな感じです。
“`js:hello.js
class Hello{
AWS IAMについてメモ
# 背景
仕事でAWSを触る機会が増えてくるので、忘備録として作成する。(随時更新予定)# 内容
主にAWSのドキュメントをベースとし、Qiita、zennなどの記事を参考にして、わかりやすくまとめることを目標にする。
内容は[このページ](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)のWhat is IAM?についてまとめる。
AWS登録について
## AWSに登録
[こちら](https://portal.aws.amazon.com/billing/signup#/start/email)からアカウントを作成する。
作成方法は割愛。初期設定は[こちらの記事](https://qiita.com/tmknom/items/303db2d1d928db720888)を参考。
## AWS IAMとは
Identity and Access Managementの略で、AWSのサービスやリソース
【AWS】運用支援ツール
# CloudWatch
多くのAWSサービスはCloudWatchによる監視に対応しており、対応しているAWSサービスから情報(監視対象のパフォーマンス項目、例えばCPU使用率など)が収集される。
ちゃんとした言葉で表すと「AWSリソースの状態(メトリクス)を定期的に取得するもの」である。
AWSが標準で定義しているメトリクスについては以下に記載されている。これらはCloudWatchでデフォルトでログ収集が可能。ここにないものも独自に定義することが可能。(カスタムメトリクスと呼ぶ)https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html
## CloudWatch Logs
ひたすらログ収集を行うもの。独自のエージェントをインストールする必要がある。
特定の文字列を検出するといったことが可能。例えば「ERROR」や「WARN」といったログが一定期間内に3回以上検出されたときにアラームを動作させるといったことが想定される。
Redshift の自動パフォーマンスチューニング機能まとめ
## はじめに
Amazon Redshift には機械学習ベースで自動的にパフォーマンスを最適化する機能が複数あります。数が増えて追いきれなくなってきたので以下にまとめます。## Automatic Vacuum Delete
* デフォルトで有効
* [2018/12/19 に追加](https://aws.amazon.com/jp/about-aws/whats-new/2018/12/amazon-redshift-automatic-vacuum/)UPDATE や DELETE オペレーションにより論理削除された行数にもとづいてバックグラウンドで自動的に VACCUM DELETE を実行します。これにより断片化で消費されていたスペースが解放され、ワークロードのパフォーマンスが向上します。
低負荷のときに実行するようにスケジュールされ、負荷が高い間は操作を停止します。
https://docs.aws.amazon.com/redshift/latest/dg/t_Reclaiming_storage_space202.html#automatic-table
AWS不正利用から反省したプライベートのセキュリティ意識
# はじめに
個人で持っていたAWSのrootユーザーが乗っ取られ、不正利用されました。その結果約70万円ほどの請求があったものの、AWSサポートとやりとりの結果免除いただけました。内心かなり焦っていたものの、先人の方々の記事に励まされ、対処自体は落ち着いて行動できたように思います。(そんなことがないに越したことはありませんが、)同じような被害に遭った方のためと自身のセキュリティ啓発の意味も兼ねて、今回の経緯を記事にしたいと思います。
# 発覚から初期対応まで
## 気づいたきっかけ
私のAWSアカウントは1年前に資格勉強のため開設した個人アカウントでした。そのため普段は利用しておらず、無償利用期間も終了が近かったため、すべてのリソースを削除して入れていた設定もすべて削除していました。当然利用額は毎月0円でした。しかしそんなアカウントにこんな件名と本文のメールが届きました。(17:50ごろ(気づいたのは20時前))
“`
【件名】
Action Required: Irregular activity in your AWS account
【本文】
Your AWS A
【AWS】ElastiCache
# ElastiCache
AWSが提供するインメモリ型データベースサービスのこと。
高頻度で参照するデータや検索に時間がかかるデータセットをメモリ上に保持するもの。
毎回ネットワーク経由でアクセスすることを避けられるのでパフォーマンス向上につながる。# インメモリ型とは?
>コンピューターのメモリ(主記憶装置)上でデータを管理するデータベースです。ハードディスクやSSD(補助記憶装置)上にデータを保管する従来のデータベースよりも高速にデータの読み書きが出来るのが特徴。
しかしメモリには大きな弱点もあります。現在のコンピューターで主に使われているメモリであるDRAMは電源の供給がなくなる、つまりコンピューターの電源がオフになると保存されているデータが消失することです。引用:[インメモリデータベースのメリット・デメリットとは](https://products.sint.co.jp/siob/blog/in-memory-databases)
# Memcached版
簡易版。メンテナンスや障害による再起動が行われた場合は全てのデータが削除されてしまう。# Redis
EC2 のオートスケーリング設定 (ハンズオン)
## はじめに
この記事はAWS Hands on for BeginnersのEC2 Auto Scaling基礎編を参考に記事にしました。## 1.AWS Cloudformation を利用してリソースを構築
ハンズオンに必要なリソースをCloudformationによって構築する。
CloudformationはAWS環境のコードによる管理を実現することができ、テンプレートで定義した環境を作成・変更・削除できる。
これを利用することで下記の項目を手作業でやる手間なく一括で構築できる。・Amazon VPC
・サブネット
・インターネットゲートウェイ
・ルートテーブル
・セキュリティーグループ
・Application Load Balancer,ターゲットグループ
事前準備で出来上がるリソース↓![AWS Cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2040882/a88e5ac3-18c0-1c09-9727-e8a61f072c20.png)
マネジメントコーン
APIサーバが不要!Hasuraを導入してみた結果と本番運用について
# はじめに
今回商用プロダクトに、[Hasura](https://hasura.io/ “Hasura”) という **GraphQL APIサーバを自動生成** してくれるツールを活用しました。
初期フェーズのプロダクト開発で、開発コスト削減にすごく貢献してくれたツールなので大変気に入ってます。とはいえ、使い方などで多少ハマったり、難しさもあったので実際に使ってみてどうだったのかを中心に書いていけたらと思います。
全体のインフラについてはこちらにまとめています。
https://qiita.com/yoshinori_hisakawa/items/23dad9d4c65d13c1b785
# そもそもHasuraを使うことが適しているのか?
問答無用で使わず、まずは本当にHasuraを使う必要があるのか?は、検討する余地があると思います。
実際に私が使うに至る理由がプロダクト要件と、組織全体の開発スピードでした。### プロダクト要件の話
:::note info
**プロダクト要求を満たすために、高度な条件Filterをデータベースに求められるか?**
:::
が
ブログサイトをAWSで公開する
– ブログサイトの公開方法は、`GitHub Pages` やその他無料サービスなどあるようですが、
ここではAWSを使ってブログサイトを公開する方法を紹介します。
– AWSを使う理由は、自由度の高さと運用費用の安さです。
– AWS利用開始1年未満であれば無料枠で運用できますし、1年経過後でも月額10円未満程度で運用できます。## この記事の目的
– ブログサイトをAWS のS3とCloudFrontを利用して公開します。
– 公開中のサイトが以下です。
## ?これより先は下記記事の内容を前提とします
– [Docusaurus でブログサイトを作成する](https://docusaurus.plant11.com/docusaurus/docusaurus)
## 導入手順
– 本家AWSの説明サイトがあります。
[CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?](https://aws.amazon.com
AWSのアカウント間で定期的にS3オブジェクトをコピー
# はじめに
今回やりたいことは、
「**あるAWSアカウントのS3バケットにあるオブジェクトを、異なるAWSアカウントのS3バケットに、毎日特定の時刻にコピーする**」
内容はすごく単純だけど、実際の中身はS3だけでなくIAM周りやEventBridgeなど複数要素が必要になり勉強になったのでまとめます。ポイントは、
– コピー処理:コピーするプログラムをどう書く?
– 権限周り:異なるアカウントのS3オブジェクトにどうやってアクセスする?
– 定期実行:どうやって定期実行させる?なおこの記事は、作業手順をまとめたものであり各要素技術について詳細に説明するものではありません(AssumeRoleは[この記事](https://dev.classmethod.jp/articles/iam-role-passrole-assumerole/)が個人的に面白かったです)。とはいえ、ここに記述する手順を踏んで実際に手を動化してみると色々勉強になりますのでトライしてみてください。
# 実現方法
今回はLambda関数を用いた方法について言及する。コピー先にLambda関数を作成し
AWSアソシエイト 未経験者がつまづいたポイントpart4
Well-Architected Framework 「セキュリティ」の設計原則
セキュリティの設計原則は以下の7つ
・強力なアイデンティティ基盤を実装する
最小権限の原則を実装し、AWSリソースの使用に適切な認証をする。
最小権限の原則とは、ユーザーやプログラムが作業を完遂するために必要な最低限の権限で操作を行うこと
・トレーサビリティを実現する
システムに対してリアルタイムでの監視、通知、監査を行うことにより、問題が発生した場合に素早く対応できる
・全レイヤーでセキュリティを適用する
一部の機能に対して重点的にセキュリティを実装するのではなく、仮想サーバー、ネットワーク、ロードバランシング、アプリケーション、コードなど、利用するすべてのレイヤーに渡ってセキュリティを実装する。
・セキュリティのベストプラクティスを自動化する
セキュリティの仕組みをソフトウェアベースで自動化することによって、安全にシステム化を迅速にしつつコスト効果を高くする。
・転送中および保管中のデータを保護する
データの機密性レベルに応じた、暗号化、トークン分割、アクセスコントロールなどを適用
Inspector v2の脆弱性診断内容を「Slackベース」で管理する
# はじめに
ご覧いただきありがとうございます。
以前[Amazon Inspector Classic](https://qiita.com/gahirosan/items/7a95ccc86e1cec205859)について記事を書きました。
最近 現行バージョンであるInspector v2で検知を行ったところ、検知精度に差があることがわかり、「Classic⇒v2」への移行を行っているところです。
今回はSlack画面で、Inspector v2の脆弱性検知結果を管理できるようにしたいと思います。
# 概要
1. 事前準備
2. Slack ~ Lambda間の連携
3. Lambda ~ Slack間の連携
4. Lambda関数の作成
5. 動作確認![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697264/95a99621-0a5e-55c7-ffd3-3703d08dbdbe.png)
Slackのプライベートチャンネルでコマンドを実行すると、La
AWS Hands-on for Beginners 〜Serverless 編〜 #2
## はじめに
勉強していて気になった部分をなんとなくメモっていきます。行うこと
https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/
AWSSAMを定義テンプレートからワンレスな環境をする本人情報
IT現場雑用員(一生Excel触ってる人)
社会人2年目、脳死資格取得男、最近SAPに受かった。## AWS SAM
AWS Serverless Application Modelの略称です。AWS CloudFormationの拡張機能で、スタック内にコードを記載するよりも簡潔にテンプレートを記載することができます。
リソースタイプを指定するTypeと、その詳細を記載するPropertiesによって記述され、公式のデベロッパーズガイドから確認することができます。https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-specification-reso
AWS: Amplify の使い方 (その2)
こちらのプログラムを改造しました。
[AWS: Amplify の使い方](https://qiita.com/ekzemplaro/items/83eb098bd116340f96df)次のような表示をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/f17b1561-d63d-597e-b583-a184d7becbfc.png)フォルダー構造
“`text
$ tree dist
dist
├── fetch.js
├── index.html
└── tochigi.json
“`“`html:dist/index.html
AWS Amplify