- 1. [AWS #7] 第三者認証
- 2. AmplifyのNodeのVersionを自動で指定する方法について解説
- 3. AWS LambdaとEventBridgeを使ってOrganization内のGitHub Actionsの使用状況をSlackで通知するには
- 4. saml2aws で Error authenticating to IdP になったとき
- 5. AWSスイッチロールの手順
- 6. [AWS #6] IAM
- 7. Terraform Failed to load plugin schemasではまった
- 8. 個人開発のアプリを1ヶ月AWSでホスティングした際の利用料金
- 9. AWSって怖くないんだよ〜〜〜って話 vol.1
- 10. VPCのクライアントVPN エンドポイントは注意すべし(費用面で)
- 11. [Terraform]CloudfrontにWAFアタッチ時にエラー
- 12. クロスアカウントアクセス バケットポリシー IP制御 奥深い
- 13. 【AWS CF】組み込み関数「!ImportValue」と「Fn::Sub」を使ってインポートする
- 14. 「AWSが分かっていない」のではなく、コンピュータサイエンスが分かっていなかった
- 15. [AWS] 初めてのAWS ~AWSアカウントと操作用のアカウントの作成 ~
- 16. CloudWatchを詳しくなりたい話
- 17. 【雑メモ&随時更新】ガバクラ on AWS関連の資料で気になるところをかいつまむ
- 18. [AWS #5]AWSの責任共有モデル
- 19. JAWS-UG 大分 で AWS BuilderCards をプレイ【イベントレポート】
- 20. CloudFormation IaC ジェネレーターを使ってみての所感
[AWS #7] 第三者認証
## ■はじめに
こんにちは
今回も**セキュリティ分野**について取り上げたいと思います。:rolling_eyes:今回の内容は何でしょうか
:upside_down:今回は第三者認証ということで **「AWS Artifact」** について紹介いたします。
:rolling_eyes:あーてぃふぁくと?
:upside_down:セキュリティやコンプライアンス、**契約の確認などをサポートするサービス**だよ## ■AWS Artifact
▶**AWSコンプライアンスレポートをダウンロードできるサービス**
▶**重要なコンプライアンス関連の情報の頼りになる一元管理型のリソース**
▶**ISO、PCI、SOCなどの第三者による監査レポートをダウンロードできます。**[・ISO(International Organization for Standardization/国際標準化機構)](https://www.jqa.jp/service_list/management/management_system/)
[・PCI(Percutaneous Corona
AmplifyのNodeのVersionを自動で指定する方法について解説
## 概要
AmplifyのNodeのVersionをコンソール画面から手動で変更するのは手間なので
– amplify.ymlにNodeのversionを直接記載する方法
– .nvmrcファイルを使って指定する方法
– voltaをAmplify内にインストールして指定する方法 <- オススメ の3つについて解説したいと思います ## 前提 - 今回はバージョン20.10.0を例に解説します ## ディレクトリ構成 ``` tree ├── .gitignore ├── Dockerfile ├── README.md └── application ├── src ├── next-env.d.ts ├── next.config.js ├── package-lock.json └── package.json ``` ## amplify.ymlに直接記載する方法 以下のようにnvmを使って使用したいNodeのバージョンを ``` nvm install 20.10.0 nvm use 20.10.0 ``` の順で直接指定する
AWS LambdaとEventBridgeを使ってOrganization内のGitHub Actionsの使用状況をSlackで通知するには
## 概要
AWS LambdaとEventBridgeを使ってOrganization内のGitHub Actionsの使用状況をSlackで通知する方法について解説します
記事の後半ではCloudFormationを使ってLambdaとEventBridgeを構築する方法についても解説します## 前提
– Pythonを使用
– GitHubのAPIを使用するため、GitHub Tokenを発行済み
– Incomming Webhookを作成済み## Organization内のGitHub Actionsの使用状況を取得するAPI
今回は以下のAPIを使って毎月の無料枠(分)と当月使用したGitHub Actionsの使用時間(分)を取得します
orgにはOrganization名を指定します“`
GET /orgs/{org}/settings/billing/actions
“`“`json:response
{
“total_minutes_used”: 305,
“total_paid_minutes_used”: 0,
“includ
saml2aws で Error authenticating to IdP になったとき
Voicy で SRE として昨年の6月に入社したので、やっと1年を過ぎました
今日は、saml2aws について少し書いていきたいと思います## AWSにGoogle Authでログイン
– AWSへのログインをする際、SAML2を利用して GoogleアカウントによるSSOが可能です
– Webの場合はよいですが、CLIを使用する場合はちょっと面倒な感じです
– CLIの場合、aws-google-authやsaml2awsを使用すると楽です## aws-google-authの場合
https://github.com/cevoaustralia/aws-google-auth
– 最近Googleログインの仕様が変更され、下記のようにログインができなくなっています
“`
% aws-google-auth
Google Password: ぱすわーど入れる
Please visit the following URL to view your CAPTCHA: https://ac
AWSスイッチロールの手順
### はじめに
スイッチロール用のIMA Userを発行した時に問い合わせがあるので、AWSやスイッチロールを初めて利用する人のために手順を纏めてみました。### 説明用のログイン情報CSV(IAM User)
“`DummyUser_credentials.csv
ユーザー名,パスワード,コンソールサインイン URL
DummyUser,Dummy&Pass,https://dummy111111111111.signin.aws.amazon.com/console
“`### 説明用のスイッチロールURL
“`URL
https://signin.aws.amazon.com/switchrole?roleName=DummyRole&account=dummy222222222222
“`### AWSにログイン
CSVに記載されているURLにアクセスします。
なぜかCSVとは違うURLにアクセスして「ログインできません」と問い合わせされる事があります。CSVのURLにアクセスするとアカウントIDが入力された状態になっています。
![image.png
[AWS #6] IAM
## ■はじめに
こんにちは
沢山あるAWSのサービス名とその仕組みを覚えるのに精一杯の者です。今回は **「IAM」** についてご紹介いたします。
:rolling_eyes:ん?「I am」?
:upside_down:「私は」ではないです。私も最初そう思いましたが…
## ■ IAM
「IAM」とは **Identity and Access Managementの略称**です。
**AWSリソースへのアクセスを安全に管理するためのWebサービス**です。IAMでは、以下の機能が用意されています。
**・「IAMユーザー(グループ)」**
**・「IAMポリシー」**
**・「IAMロール」**その中でも…
「IAMユーザー(グループ)」
これを使用することで、ユーザーの**AWSリソースに対するアクセスなどの権限を制御**することができます。「IAMロール」
これを使用することで**AWSリソースに権限を付与、ユーザーに一時的な権限を付与**することができます。:::note info
AWSアカウントで
Terraform Failed to load plugin schemasではまった
# 背景
昨日まで正常に稼働していたTerraformがあるときを境に以下のエラーが発生するようになりました。
解消方法としては知見が深まるようなものではないのですが、同じような犠牲者が増えないように残しておきます。“`log
│ Error: Failed to load plugin schemas
│
│ Error while loading schemas for plugin components: 2 problems:
│
│ – Failed to obtain provider schema: Could not load the schema for provider registry.terraform.io/hashicorp/external: failed to instantiate
│ provider “registry.terraform.io/hashicorp/external” to obtain schema: Unrecognized remote plugin message:
│
│ This usually means th
個人開発のアプリを1ヶ月AWSでホスティングした際の利用料金
個人開発したアプリケーションを1ヶ月AWSでホスティングした際の、おおよその金額感について整理していく。
## AWS使用料金
データは2024年4月のもの。
![スクリーンショット 2024-05-05 16.19.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684929/3798bdef-64d3-eb77-afdd-2848132c6449.png)
日本円で6947円である。
### コストの割合
ALB, ECS, VPC の3つが主なコスト発生源となっている。
![スクリーンショット 2024-05-05 16.22.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684929/ce8040ae-d35b-1201-35e7-4c3826544a1f.png)
![スクリーンショット 2024-05-05 16.22.39.png](https://qiita-image-stor
AWSって怖くないんだよ〜〜〜って話 vol.1
私は未経験でエンジニア転職を目指している31歳のいしかわです
とあることをきっかけに**AWS Certified Cloud Practitioner**を試験を受けようと思い現在学習中です
参考にしているもの書籍は[定番の緑本](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%BC-%E6%94%B9%E8%A8%82%E7%AC%AC3%E7%89%88-%EF%BC%A1%EF%BC%B7%EF%BC%B3%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%8
VPCのクライアントVPN エンドポイントは注意すべし(費用面で)
## 経緯
社内ネットワークを模倣したVPCを作成したため、クライアント(自分のPC)とVPCのクライアントVPN エンドポイントというものを使用して、VPN接続を行った。↓のVPCの仮想プライベートネットワーク(VPN)で設定できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1328154/75a7f45f-b87b-7ace-1a60-0994513d5ccf.png)OpenVPN GUIで接続できたのを確認し、不要リソースを削除していった。(ここまでで、意外と時間がかかった。)
次の日、Budgetsを確認してみると、
“`
Amazon Virtual Private Cloud ClientVPNEndpoints USD 0.88
$0.15 per Client VPN Endpoint Association Hour 5.853 Hourly USD 0.88
“`
`$0.15 per Client VPN En
[Terraform]CloudfrontにWAFアタッチ時にエラー
# TerraformでCloudfrontにWAFアタッチ時にエラー
TerraformでWAFをCloudfrontにアタッチしようとした際にエラーが発生しました。
WAFとCloudfrontは公式モジュールを利用して作成しています。
– エラーログ
“`log
╷
│ Error: updating CloudFront Distribution (E3SVU6W6XV9FRF): InvalidWebACLId: Web ACL is not accessible by the requester.
│ status code: 400, request id: ac4db5f0-b3ac-4c1f-8c70-b099df011216
│
│ with module.cloudfront.aws_cloudfront_distribution.this[0],
│ on .terraform/modules/cloudfront/main.tf line 15, in resource “aws_cloudfront_distribution” “this
クロスアカウントアクセス バケットポリシー IP制御 奥深い
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip
大事なことはすべてここにある## まとめ
aws:SourceIpはリストで指定NG
VPCエンドポイント経由のときはaws:SourceIpではなくaws:VpcSourceIp
## 初歩的ミス
リストでaws:SourceIpだめ
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AllowSSLRequestsOnly”,
“Effect”: “Deny”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: [
“arn:aws:s3:::s3-a”,
“arn:aws:s3:::s3-a/*”
],
“Condition”: {
“Bool”: {
“
【AWS CF】組み込み関数「!ImportValue」と「Fn::Sub」を使ってインポートする
# 概要
AWS Cloudformationで組み込み関数を使ってインポートする場合、うまくいかずにエラーになることがあります。
正常にインポートできる方法を紹介します。# サンプル
例えば、とあるスタックで以下のようにエクスポートしたとします。“`yaml
‘PublicSubnet1-${Tag1}-${Tag2}’
“`これを、パラメータ`${Tag1}`と`${Tag2}`を同じ値の定義とする、別のテンプレートでインポートするとします。
この時、以下だとエラーになります。
“`yaml
SubnetId: !ImportValue
!Sub ‘PublicSubnet1-${Tag1}-${Tag2}’
“`エラー内容:
“`
E0000: did not find expected key
“`何だか一見上記でいけそうですが、Cloudformationの組み込み関数の使い方としては不適切でした。
正しくは以下です。
“`yaml
SubnetId: !ImportValue
Fn::Sub: ‘PublicSubnet
「AWSが分かっていない」のではなく、コンピュータサイエンスが分かっていなかった
## はじめに
◆この記事は何?
焦ってAWSの勉強をするよりもコンピュータサイエンスの基礎を勉強してからの方がよかったという私の経験を紹介する記事です◆対象は?
AWSの勉強をしている方
特に若手◆この記事のねらい
AWSの勉強効率を上げる## 先に結論
– AWSの勉強に時間がかかったのは**コンピュータサイエンスの基礎ができていなかった**から
– コンピュータサイエンスの基礎を勉強してからの方が、圧倒的に効率が良い
– 遠回りに見えるが、近道だと考える## 急にAWSを勉強した
新卒1年目からデータサイエンティストとして働いています。
急にAWSが必要になったので、急いでAWSの勉強をしました。
結果的には、「AWS Certified Cloud Practitioner」「AWS Certified Solutions Architect – Associate」を取得しました。当時は知らない用語ばかりで勉強に苦労しました。資格は取得できましたが、付け焼き刃になってしまった感は否めませんでした。
## 数年後に勉強し直した
数年後、アプリ開発を
[AWS] 初めてのAWS ~AWSアカウントと操作用のアカウントの作成 ~
記事を書いた日:2024/6/16
画像を取得した日:2023/1 頃
(以前個人的に作成していた資料を用いているため)AWSを始めて触る方向けに、一番初めのアカウント作成について説明します。
# 構築情報
## 概要
下記の項目を達成することを目標とする。
・課金の単位であるルートアカウントの作成を行う
・今後AWSサービスを使用するための操作用アカウント(IAMユーザー)の作成を行う
・MFA認証の設定方法を理解する## 構築するもの
- ルートアカウント
- 課金単位となる大元のアカウント
- これが乗っ取られると翌月には数百万円の課金が来ると思ってヨシ
- 操作用のアカウント(IAMユーザー)
- ルートユーザーを普段使いするのはリスクがあるため操作用にアカウントを作成する
- しかし、本記事で作成するユーザーも強い権限を持っているので気を付けるベシ
# AWSアカウントの作成
※既にAWSアカウントをお持ちの方はこの章を飛ばしてください
CloudWatchを詳しくなりたい話
## はじめに
AWSリソースを利用するにあたり、ログ収集や監視はどのように行うでしょうかシステムの予期せぬ障害やパフォーマンスの低下に備えるためには、これらの作業が不可欠です。
また、システムを安定的に運用・提供するためには、リソースがどのように動いているのかを常に把握する必要があります。これには、開発者、運用担当者、ビジネスユーザーなど、さまざまな立場からの要求があります。今回はそんな時に使えるAWSサービスの一つである、CloudWatchについてお話してきます。CloudWatchって色々複雑でよくわかんないよね、と思った私より、業務でこんなことやりたいを実現した運用も含め、学んだことを記載していければと思います。
## Observabilityとは
Observabilityという言葉をみなさん聞いたことがありますでしょうか。(一年前ほど前AWS研修で学び、社内向けには展開したこともありました。)
オブザーバビリティとは**可観測性**を意味します。システムで何がなぜ起こっているかといった動作状況を把握できている状態を指します。特にサーバーレスの分散性により、このオ
【雑メモ&随時更新】ガバクラ on AWS関連の資料で気になるところをかいつまむ
AWS管理のデバイスやデータ
→第三者が提供する情報によって確認可能
お客様管理のデータ
→KMSで暗号化、ConfigやCloudTrailによってKMSの証跡を管理するCLOUD法
→アメリカ裁判所の管轄権がある、アメリカと接点のある企業は適用対象
→強制的にAWS保管のデータに無制限にアクセスできるわけではなく、裁判所の霊場が必要参考:https://resources.awscloud.com/jpps-jichitai/points-for-cloud-proposal#main-content
庁内ネットワーク接続は2パターン
– ガバメントクラウド接続サービスの利用
– 個別にIP-VPNの利用
2つ目の場合、TransitVIF対応しているか確認(導入してるか)→ネットワークの柔軟性に影響自治体とAWSの間のネットワーク
自治体は3層分離のセキュリティポリシーガイドラインがある(インターネット接続禁止的なやつ)
3層分離
– 個人番号(マイナンバー)利用事務系
– LGWAN接続系
– インターネット接続系
https://symphonict.ne
[AWS #5]AWSの責任共有モデル
## はじめに
こんにちは
今回からは **「AWSのセキュリティ」** 分野について取り上げていきたいと思います。
まずはAWSにおけるセキュリティに関しての基本的な考え方などの全体像を押さえていきたいと思います。
## AWSの責任共有モデル
AWSにおけるセキュリティの考え方については**「AWSにおいてセキュリティは最優先事項」**であると**AWSが強調**しています。そのため、AWSは**膨大なコストをかけてセキュリティを担保**しています。しかし、AWSがどれだけコストをかけてセキュリティを担保したとしても、AWSの利用者が好き勝手に利用してしまうとセキュリティを維持することができなくなってしまいます。ユーザーがコントロールできる範囲では**要件に対して適切なセキュリティを設定**する必要があります。
そこでAWS上の「セキュリティ」に対して**「AWS側の責任」**と**「利用者側の責任」**を示した
**「責任共有モデル」**
JAWS-UG 大分 で AWS BuilderCards をプレイ【イベントレポート】
## はじめに
2024/6/14(金) に JAWS-UG 大分のイベントを開催しました
AWS BuilderCards をみんなで遊び、 AWS 各種サービスの話題で盛り上がりました!
https://jawsug-oita.doorkeeper.jp/events/173353
翌日には JBUG 大分も開催しました
https://qiita.com/RyoWakabayashi/private/8b81b00b09c9eea67881
## JAWS とは
JAWS は日本の AWS ユーザー会です
日本全国の地域支部や、セキュリティ、メディアなど分野・技術に特化した支部が多数活動しています
https://aws.amazon.com/jp/
https://jaws-ug.jp/
## AWS BuilderCards とは
AWS BuilderCards は AWS を楽しく学べるカードゲームです
AWS の初心者から上級者まで、誰でも楽しめる内容になっています
詳しくは公式ブログを参照してください
https://aws.amazon
CloudFormation IaC ジェネレーターを使ってみての所感
# はじめに
本記事は2024年2月に公開されたされたAWS CloudFormationの新規機能「IaCジェネレーター」の検証記事です。
IaCジェネレーターで生成されたテンプレートを展開した際に、どのようなエラーが発生するかや、その解決方法を纏めています。https://aws.amazon.com/jp/about-aws/whats-new/2024/02/aws-cloudformation-templates-cdk-apps-minutes/
# IaCジェネレーターとは
アカウントに紐づくリソースをスキャンして、CloudFormationのテンプレートを自動生成してくれる機能です。
複雑な設定はなく、数ステップで簡単にテンプレートを作成することができます。
いくつか考慮事項(1回のスキャンで読み取れるリソースの最大数など)があるので、
使用の際には以下ページを参考にしてください。https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/generate-IaC.html