- 0.0.1. AWS アカウント管理 API のセキュアな運用方法を考える
- 0.0.2. 生成AI未経験者がBedrockを組み込んだLINEチャットBotをつくってみた
- 0.0.3. エロ画像検出APIを用いてエロ画像のアップロードを阻止してみる【後編】
- 0.0.4. serverless frameworkを使って毎日AWSのコストをSlackに飛ばすlambda関数を作ってみる(トリガーの設定)
- 0.0.5. 【LT大会】はじめて司会進行を務めて感じたこと
- 0.0.6. 【小ネタ】SecurityHubのJSONデータをPythonで加工する時に役立つスニペット集
- 0.0.7. AWS IAMポリシーをわかりやすく解説~Part3~
- 0.0.8. [AWS #24] Amazon Cloud Front
- 0.0.9. AWS EC2+Dockerで無料のマイクラサーバーを立てた話
- 0.0.10. serverless frameworkを使って毎日AWSのコストをSlackに飛ばすlambda関数を作ってみる(実用コードの記載)
- 0.0.11. AWSのLambdaとAPI Gatewayでプロキシ統合てhtmlを表示しようとしたら文字化けした
- 1. 日本語を含むhtml
- 1.0.1. 【AWS】GiteaをEC2で起動してみた
- 1.0.2. 【AWS認定合格記】AWS クラウドプラクティショナー(CLF-C01)
- 1.0.3. CloudwatchLogs を Kinesis Firehose 経由で S3 にログストリーム毎に保存する
- 1.0.4. AWS LambdaとSnapStart
- 1.0.5. 【AWS】S3バケットへシークレットキーを渡さずにファイルをアップロードしてもらう方法
- 1.0.6. EventBridgeの入力トランスフォーマーを使ってOpsItemを登録したい
- 1.0.7. AWSのELBとRDS AuroraでTLSv1.1以下を無効化する方法
- 1.0.8. EKSクラスター、ノードグループをCLIで作成する
- 1.0.9. Insight SQL Testingを使ったAurora PostgreSQLのバージョンアップテスト
AWS アカウント管理 API のセキュアな運用方法を考える
:::note info
本記事で触れるのは AWS アカウントに関連する API 操作であり、マルチアカウントの運用手法そのものには触れません。
:::## はじめに
AWS Account Management (AWS アカウント管理) の API を使用すると、AWS アカウントの属性情報を変更できます。具体的には以下のような AWS アカウントの管理タスクを実行することができます。* 主要連絡先の確認、更新
* 代替連絡先 (請求/オペレーション/セキュリティ) の確認、更新
* リージョンのオプトイン/オプトアウト、設定状況の確認
* プライマリ (ルートアカウント) メールアドレスの確認、更新https://docs.aws.amazon.com/accounts/latest/reference/API_Operations.html
ルートアカウントのメールアドレスに関連する操作は 2024 年 6 月のアップデートでサポートされた機能です。
https://aws.amazon.com/jp/about-aws/whats-new/2024/06/m
生成AI未経験者がBedrockを組み込んだLINEチャットBotをつくってみた
# はじめに
この度、ANGEL Calendarの企画に参加しております!
記事一覧は下記のOrganizationアカウントの一覧をチェックしてみてください!
[2024-ANGEL-Dojo Organization](https://qiita.com/organizations/2024-angel-dojo)https://qiita.com/har1101/items/637ba82948aa7670fb9f
# 生成AIを使ってみたい!!
こんにちは!ANGEL Calendar企画運営メンバーのふじもとです!
ANGEL Calendar、3日目担当させていただきます。今年、初めて[AWS Summit](https://aws.amazon.com/jp/summits/japan-2024/)に参加してきました。多くのAWSの事例を見ることができ、とても刺激的な体験でした。参加してみて、やはり生成AI関連の議題が非常に多いと感じました。一方で、そんな激熱トピック:fire:に触れることができていない自分に対して焦りも感じました。
ということで、ANG
エロ画像検出APIを用いてエロ画像のアップロードを阻止してみる【後編】
こんにちは!すぎちゃんです!
今回は前編に引き続き、Fargateコンテナと連携をした「エロ画像防止機能」をlaravelで作っていこうと思います! :muscle:
こちらの記事にも「いいね :heart: 」よろしくお願いします!
:::note info
[エロ画像検出APIを用いてエロ画像のアップロードを阻止してみる【前編】](https://qiita.com/sugichaaaan/items/738867e4bc3a1a0077d9)
:::## :file_folder: ディレクトリ構造
今回の実装で使用する、クラス、bladeファイルを一挙公開いたします!
srcを起点にtreeを起動してしまうと枠に収まりきらなくなるので、直下のappディレクトリ、resourcesディレクトリでそれぞれコマンドを叩きファイル構造を可視化しました。
`(省略)`と末尾についているディレクトリについては、今回のエロ画像検出機能とは関係がないので配下のディレクトリ、及びファイルの表示は控えさせていただきます:sweat_drops:
### [src/ap
serverless frameworkを使って毎日AWSのコストをSlackに飛ばすlambda関数を作ってみる(トリガーの設定)
## 概要
今まで作成してきたserverlessを用いてデプロイしているlambdaのトリガーはEventBridgeを使っているが何かしらのイベントをトリガーにして起動するような設定になっている。
これを日本時間の午前10時に毎日実行されるように設定する。## 前提
下記の内容が完了していること
https://qiita.com/miriwo/items/747bfff4214c3350656e
## 方法
– 下記を実行してすでにデプロイされている関連AWSリソースを一旦削除
“`terminal
serverless remove
“`– 下記の様にserverless.ymlのfunctionsの部分を修正
“`aws-cost-notify/serverless.yml
functions:
notify:
handler: handler.notify
name: aws-cost-notify
events:
– sche
【LT大会】はじめて司会進行を務めて感じたこと
# はじめに
先日、パブリックに開かれるエンジニア系オンライン LT 大会の司会進行を務めました。司会進行はもちろん外部での登壇自体も人生ではじめてのことだったので、しっかり準備して行こうと思いネットでいろいろ調べていました。
しかし発表者向けの情報ばかりで、司会進行向けの情報は意外と見つかりませんでした。今回は、はじめてパブリックな場で司会進行を務めた経験を踏まえて、準備しておいたほうが良いことを自分なりにまとめてみました。
# 実施しておくべき事前準備
そんなの当たり前だろ!という基本的な部分から書いていきますのでご容赦ください!### 登壇者の名前を再確認しておく
平気だと思っていてもいざ当日になると「山崎」さんが「やまさき」なのか「やまざき」なのか…うろたえてしまうなんてことが起こりえるかもしれません。
パブリックな会だとなおさら間違えることはできないため、忘れないように確認しておきます。
### タイムアップ時の対処
LT は時間が 1 人 5 分など決まっていることがほとんどです。
制限時間は事前にお伝えしているとは思いますが、いざ制限時間を超
【小ネタ】SecurityHubのJSONデータをPythonで加工する時に役立つスニペット集
# 拝啓
AWS SecurityHubを活用する際に、セキュリティ関連の発見事項(Findings)をJSON形式で取得することができます。しかし、このデータをそのまま使用するのではなく、より使いやすい形にすることがたまーに求められます。
この記事では、AWS SecurityHubのJSONデータをちょっとだけ便利に加工するPythonコードをいくつか紹介します。
:::note info
↓FindingsのJSONイメージはこちらから確認できます
https://docs.aws.amazon.com/ja_jp/securityhub/1.0/APIReference/API_GetFindings.html#API_GetFindings_ResponseSyntax
:::# はじめに
JSONの読み込みを“`json_data“`と定義しました。json_data = json.load(f)
## 1. Finding IDをFinding URLに変換する
Finding URLで直接アクセスしたい場合。
“`python
#
AWS IAMポリシーをわかりやすく解説~Part3~
## はじめに
前回まで、AWSのセキュリティの要となるIAMポリシーの基本や条件について解説してきました。今回は、IAMポリシーがどのように評価されるのか、その仕組みである**ポリシー評価チェーン**について解説します。
### ポリシー評価チェーンとは?
ポリシー評価チェーンとは、IAMがアクセスリクエストを評価する際に参照するポリシーの順序のことです。いわば、アクセス許可のチェックポイントが順番に並んでいるイメージです。アクセスリクエストが許可されるためには、このチェーンのすべてのチェックポイントを通過する必要があります。
### ポリシー評価チェーンの順番
ポリシー評価チェーンは、以下の順番で評価されます。
1. **サービスコントロールポリシー (SCP):** AWS組織全体で適用されるポリシーです。組織内のすべてのアカウントに影響を与えます。いわば、組織全体のセキュリティポリシーのようなものです
2. **IDベースのポリシー:** ユーザーやグループに直接アタッチされたポリシーです。個々のユーザーやグループに適用される細かいアクセス制御ルールです
3. **
[AWS #24] Amazon Cloud Front
## はじめに
こんにちは
今回はネットワークサービス分野である **「Amazon Cloud Front」** について紹介したいと思います。
:rolling_eyes: CloudをFront(正面、前)? どんなサービスなんでしょうか
:upside_down: 世界中に約**600**箇所以上ある **「エッジロケーション」** を使い、**最も低いレイテンシー**でコンテンツを配信できる **「コンテンツ配信ネットワークサービス」**になります。特徴も踏まえて見ていきましょう。## Cloud Frontの特徴
・**キャッシュによる低レイテンシー配信**
・**ユーザーの近くからの低レイテンシー配信**
・**安全性の高いセキュリティ**### キャッシュによる低レイテンシー配信
仮にCloud Frontを使用して
AWS EC2+Dockerで無料のマイクラサーバーを立てた話
# 概要
身内用にマイクラサーバーを立てる機会があったので、せっかくならとAWS EC2とDockerを使って立ててみました。AWSには一年間の無料枠があり、EC2サーバーを月750時間動かすことができます。(複数サーバーを立てた場合、サーバーごとではなくそれぞれのサーバーの合計となるので注意)
今回作ったもののソースコードはこちら
https://github.com/Nitoryu008/aws-docker-mc-server
# AWS EC2サーバーを立てる
今回は以下のような構成でEC2サーバーを立てました。t4g.smallは無料利用枠の対象には書かれていませんが、以下のページによると2024年12月31日まで無料で利用できるようです。https://aws.amazon.com/jp/ec2/faqs/#t4g-instances
| 項目 | 値 |
|:—-:|:—-:|
| 名前 | Minecraft Server |
| Amazonマシンイメージ | Amazon Linux 2023 AMI |
| アーキテクチャ | 64ビット
serverless frameworkを使って毎日AWSのコストをSlackに飛ばすlambda関数を作ってみる(実用コードの記載)
## 概要
serverless frameworkを使って毎日AWSのコストをSlackに飛ばすlambda関数のコードを実際に動作するコードに書き換える。
今まではコスト取得期間がハードコーディングされていたが、今回から動的に情報を取得しSlackに通知を投げる部分も作成する。## 前提
下記の内容が完了していること。
https://qiita.com/miriwo/items/bf274fa6af25a396f05d
https://qiita.com/miriwo/items/d4aee0c6dc020e134145
## 方法
– 下記の内容を参考にSlackAppを作ってWebhook URLを発行し、メモする
https://qiita.com/miriwo/items/cbb4b37b3f5abecc835f
– 下記をプロジェクトディレクトリで実行してaxiosをインストール
“`terminal
npm install axios
“`– aws-cost-notify/handler.jsを下記のように書き換
AWSのLambdaとAPI Gatewayでプロキシ統合てhtmlを表示しようとしたら文字化けした
AWSでLambdaとAPI GatewayのRest APIを用いてサーバーレスでWebサイトを作ろうとしたところ、日本語のhtmlを表示しようとしたときに文字化けしてしまった。
このとき、API Gatewayの設定でLambdaのプロキシ統合は有効にしていて、Lambdaのソースコードはざっくりとは下記の通り。
“`python
def lambda_handler(event, context):
html = “””\日本語を含むhtml
あいうえおかきくけこ
“””
return {
“statusCode”: 200,
“headers”: {
“Content-Type”: “text/html”
},
“body”: html
}
“`
調べてみると、プロキシ統合を有効にしない場合ではAPI Gatewayの設定で「Content-Typeをapplication/json;charset=UTF-8にする」ことにより日
【AWS】GiteaをEC2で起動してみた
## はじめに
この記事ではAWSでGiteaを起動する方法を記載しています。
## Giteaとは
セルフホスト可能なリポジトリ管理ソフトウェアであり、強力なCI/CDをあらゆるところで起動できるソフトウェアです。
主な特徴は以下のとおりです。
– Goでできている
– MIT LICENSE
– Dockerに対応[サイト](https://about.gitea.com/)
## 準備するもの
– EC2が起動できるAWSアカウント
– AWS Systems Manager Session Manager(SSM)も利用します
– ほんの少しのやる気## 実際に動かしてみよう
おおおまかな手順
– EC2の構築
– SSMを使ってEC2にログイン
– シェル上でDocker Compose upを実行## EC2の構築
EC2はコンソールぽちぽちしても良いですが、今回はCloudFormation Templateを用意しましたので
テンプレート作ります。以下のテンプレートをCloudFormationで適用してください。
“`y
【AWS認定合格記】AWS クラウドプラクティショナー(CLF-C01)
## はじめに
:::note warn
受験は今から1年以上も前のことになるので、今の試験(CLF-C02)とは試験内容は異なりますが、当時の勉強方法などの備忘録を記載しています。
:::軽く自己紹介すると、、
◆学部卒(非情報系)
◆新卒でSIerに入社し、3年目。
◆取得資格
| 資格名 | 取得日 |
|:———–|:———–|
| 基本情報技術者 | 2021年11月 |
| AWS クラウドプラクティショナー | 2023年2月 |
| AWS ソリューションアーキテクトアソシエイト | 2023年7月 |
| AWS ソリューションアーキテクトプロフェッショナル | 2024年3月 |
| AWS デベロッパーアソシエイト | 2024年3月 |
| AWS sysOps Administrator アソシエイト | 2024年4月 |:::note info
sysOpsAdministratorアソシエイトを取得するまでは、業務ではAWSに携わったことはありませんでした。
:::## 勉強方法
使用した問題集は、**U
CloudwatchLogs を Kinesis Firehose 経由で S3 にログストリーム毎に保存する
# あらすじ
前回こちらの記事で、CloudwatchLogs を Kinesis Firehose 経由で S3 に保存する構成を CDK で構築した。
https://qiita.com/leomaro7/items/e2b9bcb131d96281a950
今回は、CDK ではありませんが次に説明することをやってみたいと思います。
# やってみたいこと
S3 バケットに保存される際、S3 のプレフィックスやオブジェクト名に<ログストリーム名>を付与したい。
理由としては、S3 にはロググループ毎では保管できるが、どの<ログストリーム名>のものかわからないためである。
## プレフィックスの場合
`s3://
/<ロググループ名>YYYY/MM/DD/hh/`を ↓
`s3://
/<ロググループ名>/<ログストリーム名>/YYYY/MM/DD/hh/`に保存できるようする ## オブジェクト名の場合
`s3://
/<ロググループ名>YYYY/MM/DD/hh/<自動で作成されるオブジェクト名>`を ↓
AWS LambdaとSnapStart
# はじめに
AWS Lambdaは、開発の面ではプログラミングが簡単で、運用の面では変化する使用パターンに迅速に対応できるアプリケーションです。Lambdaの特徴は、**関数が安全で、隔離された環境**で実行される点です。各環境のライフサイクルは、**Init**、**Invoke**、**Shutdown**という3つの段階で構成されます。## AWS Lambdaのライフサイクルごとの特徴
| Category | Desciption |
|————|——————————————————————————|
| Init | 関数のランタイムをブートストラップし、静的コードを実行 (INIT_REPORT) |
| Invoke | APIリクエストに応答してLamb
【AWS】S3バケットへシークレットキーを渡さずにファイルをアップロードしてもらう方法
# こんな時どうする?
### ケース1
:::note info
自分が管理するS3バケットに対して、他の人にファイルをアップロードしてもらいたい
:::
– 相手からファイルをもらって自分でアップロードする?
– その人のために新しくアクセスキーとシークレットキーを発行する?### ケース2
:::note info
SPAなどでフロントエンド側からS3バケットへファイルを直接アップロードしたい
:::
– フロントエンドからバックエンドへ一旦ファイルをアップロードして、サーバーで受け取ったファイルをS3へアップロードする?サーバーサイドのバリデーションが必要な場合は有効な方法ですが、サーバーに負荷がかかってしまいます。
—
どちらのケースでも他の人やフロントエンド側にシークレットキーを渡さずにアップロードしたいものです。
# 注意
:::note warn
この記事で紹介している方法は、署名バージョン2です。
2014年1月30日以降の新しいリージョンでは署名バージョン4のみがサポートされるため、それらのリージョンへのリクエストは署名バージョン4で行う必要が
EventBridgeの入力トランスフォーマーを使ってOpsItemを登録したい
# :sunrise_over_mountains:はじめに
ある特定のイベントが発生したら、OpsCenterにOpsItemを自動で登録したい!### :point_up:そもそもOpsCenterとは
> AWS リソースに関連する運用上の作業項目 (OpsItems) の表示、調査、解決を一元管理できます。例えばある障害が起きた際に、SSM Automation を利用して復旧することやリソースを関連づけで原因調査、ステータスによるインシデント管理やナレッジを蓄積・検索したり、簡易レポートを表示することが出来る。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/OpsCenter.html
### :point_up:EventBridgeの入力トランスフォーマーとは
EventBridgeRuleが受け取った情報をターゲットに渡す前に、整形できる機能!https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguid
AWSのELBとRDS AuroraでTLSv1.1以下を無効化する方法
セキュリティチェックシートに「SSL3.0およびTLS1.1以前を無効化しているか」という質問があったのですが、恥ずかしながら即答できなかったので、調査および対応を行いました。
同様の対応が必要な方々の参考になれば幸いです。
なお、インフラ構成はELB(ALB) + ECS on Fargate + Aurora MySQLとなっております。
## ELB(ALB)
ELBにデフォルトでアタッチされているセキュリティポリシー`ELBSecurityPolicy-2016-08`の詳細をAWS CLIで確認したところ、以下のようにTLSv1とTLSv1.1が有効化されていました。“`bash
$ aws elbv2 describe-ssl-policies –names ELBSecurityPolicy-2016-08 –output table
—————————————————
| DescribeSSLPolicies |
+——-
EKSクラスター、ノードグループをCLIで作成する
今回、EKS理解のためにCLIでリソースを作成する機会がありました。
クラスター作成に必要な設定は多く、少しわかりにくく感じますね
# EKSクラスターを作成する
<>内は置き換えてください
“`shell
aws eks create-cluster \
–role-arn\
–resources-vpc-config subnetIds=, ,endpointPublicAccess=true,endpointPrivateAccess=true,publicAccessCidrs=0.0.0.0/0 \
–logging ‘{“clusterLogging”:[{“types”:[“api”,”audit”,”authenticator”,”controllerManager”,”scheduler”],”enabled”:true}]}’ \
–access-config authenticationMode=API \
–name eks-cluster
“`
end
Insight SQL Testingを使ったAurora PostgreSQLのバージョンアップテスト
こんにちは!インサイトテクノロジーの松尾です。
本投稿では、標準サポート終了が2025年2月に迫る Aurora PostgreSQL 12 の EOL 対策として、SQL テストツール Insight SQL Testing を使ってバージョンアップ互換性検証テストを行う例をご紹介します。
## 延長サポート料金は1か月あたり約10万円 (8コアの場合)
ご存知のように延長サポートに自動で移行します。東京リージョンで「USD 0.12/VCPU-時間」となかなかいい金額がかかりますので、自社で運用しているクラスタのコア数を確認して計算しておきましょう。8コアだとだいたい 10万円/1か月 くらいでしょうか。Aurora を利用されている方は、もっと多くのコアを使っているケースも多々ありますよね。なお、これは1年目、2年目の場合の費用で、3年目はさらに倍となります。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/extended-support-charges.html
AWS からも警告