AWS関連のことを調べてみた2023年01月13日

AWS関連のことを調べてみた2023年01月13日

boto3 APIで実装するAssumeRole(Python)

## AssumeRoleとは
現在のIAMの権限から、異なるIAMロールへ権限委譲するときに利用するAWS API名。
本記事では、Lambdaに付与しているIAMロールからAssumeRole先のIAMロールへ権限委譲するための実装を後述。
![スクリーンショット 2023-01-13 11.04.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263017/3ca07396-fb58-9a97-f3dd-d3dcb2e38fad.png)
## IAMロールの構築
Lambdaに付与するIAMロールを作成
![スクリーンショット 2023-01-13 11.06.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263017/659edbd3-e797-91a7-a5eb-ab4b8420069d.png)

AssumeRole先のIAMロールを作成(添付画像の信頼関係の設定必須!)
![スクリーンショット

元記事を表示

Fargateで読み取り専用ルートファイルシステムで動作させる場合の考慮

## 読み取り専用ルートファイルシステム
– コンテナ上のファイルシステムへの書き込みを禁止する設定
– 起動中にファイル書き込みができないため、セキュリティレベルが結構上がる
– 多くの場合、一時ファイル、PID生成、ソケットファイル生成などの挙動があるため、単純に本機能を有効にしただけでは、書き込みエラーでプロセスが上がってこないので、この辺りは調べないといけない

## どのように設定すればよいか

### AWS側
タスク定義に下記を追記

“`json
{
readonlyRootFilesystem = true
}
“`

### アプリケーション側
– 書き込みが必要なディレクトリのみをDockerfileのVOLUMEでマウントする
– そうすると、ホストのファイルシステムへの書き込みができるようになる。
– また、このボリュームは揮発性であるため、コンテナ削除のタイミングでボリュームも削除される

#### 例

“`Dockerfile
FROM alpine:3.11.3

RUN mkdir -p /hoge /fuga

VOLUME [“/ho

元記事を表示

【コスト削減】小規模な ECS on Fargate 環境をスモールステップで約76%節約した話

# はじめに

私のチームでは、スクラム開発にRedmine(コンテナ)を利用しています。
ECS on Fargate 環境で Redmine コンテナを利用していますが、当チームはコンテナ経験豊富なメンバーがおらず、当初かなりのコストがかかっていました。

一般的に推奨されている方法の積み重ねであるため、特に目新しさはありませんが、スモールステップで約76%のコストを削減しましたので、事例を紹介します。

## ECS on Fargate導入・コスト削減の経緯

大まかな経緯は以下の通りです。

1. 当チームのスクラム開発で、管理ツールを検討。
2. メンバーから、ECS on Fargate で組まれた Redmine のテンプレート(CDK)が展開。
3. 当チームのコンテナ運用経験が乏しかったので、学習も兼ねて Redmine のコンテナを導入することに決定。
4. 特に意識せず、ECS on Fargate 環境を構築したところ、AWS 利用料が高額化。
5. スモールステップでコスト削減を実施!

## 環境

Redmine の構築では、以下を参考にさせていただ

元記事を表示

[AWS学習] 責任分担セキュリティモデルとIAMについての学習メモ

## 責任分担セキュリティモデル
**利用者** と**AWS** が協力してセキュリティを高める考え方
・不正アクセスの保護など

### システムのどの階層について責任を分担するかは利用するAWSサービスによって異なる
アブストラクトサービス > コンテナサービス > インフラストラクチャサービス
の順で**AWSの責任範囲** が多い

#### インフラストラクチャサービス(例:EC2)
##### 利用者の責任範囲
・データ
・アプリ
・OS
・ネットワーク
・ファイアウォール
・データ・通信の暗号化
・AWSアカウント
・IAMユーザ
##### AWSの責任範囲
・インフラストラクチャ(物理ホスト/ストレージ/ネットワーク)
・AWSデータセンタ(リージョン/AZ/エッジロケーション)

#### コンテナサービス(例:RDS)
##### 利用者の責任範囲
・データ
・アプリ
・暗号化
・プラットフォーム/アプリケーション管理
・ファイアウォール
・AWSアカウント
・IAMユーザ

##### AWSの責任範囲
・OS
・ネットワーク
・インフラストラクチャ(物理ホス

元記事を表示

AWS CLI のインストール方法【ワンライナー】

[公式](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html#cliv2-linux-install)にも説明はありますが、より簡単なワンライナーを何度も忘れてしまうので備忘録として記載しました。

# 結論
“`bash
pip3 install awscli
“`

## 補足
“`bash
sudo apt install awscli
“`
でもインストール自体は成功しますが、
“`
ImportError: cannot import name ‘docevents’
“`
というエラーが発生します。

“`bash:エラー全文
Traceback (most recent call last):
File “/usr/bin/aws”, line 19, in
import awscli.clidriver
File “/usr/lib/python3/dist-packages/awscli/clidriver.py”,

元記事を表示

1NCE IoT SIMのData StreamerデータをAWS QuickSightで可視化してみる

皆さんこんにちは。ソリューションアーキテクトのTakamasaです。

この記事では、2022年10月26日から日本で事業開始した低容量IoT回線、1NCE(ワンス)のSIM管理プラットフォーム上で設定するData Streamer(データストリーマー)を使って、回線利用状況のデータをAWS QuickSight上で可視化する方法を紹介します。

## 1NCE IoT回線プラットフォームとは?
そもそも1NCE IoT回線というもの自体がまだまだ新しいものなので、簡単に特徴をまとめてみます。

>1回線当たり一括2,200円(税込)の支払いのみで、最長10年間、500MBまで利用可能(プリペイド式)
SIMカード1枚からオンラインで購入可能
日本国内に加えて、140以上の国と地域において追加料金なしでローミングサービスを利用可能
SIMカードに加えて、ウェブ上の回線管理ツール(CMP)や、お客さまのシステムとのデータ連携を可能にするAPI、安全にデータを伝送するOpen VPNなどの機能を追加料金なしで利用可能
eSIMやIPSec-VPN(各拠点のLANを相互接続する高セキュリティ

元記事を表示

AWS DataSyncとAzure File Sync 比較 ~Azure File Sync構築編~

AWS DataSync(以下、DataSync)と Azure File Sync(以下、File Sync)シリーズの4本目の記事です。
1本目は記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~共通点と相違点~](https://qiita.com/hidekko/items/9610ef551999f6ea1f37)
2本目は記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~前提条件定義編~](https://qiita.com/hidekko/items/45eab57f6c6088eb1607)
3本目は記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~AWS DataSync構築事前準備編~](https://qiita.com/hidekko/items/8e7a3fb6494462926597)
4本目の記事はこちら
[AWS DataSyncとAzure File Sync 比較 ~AWS DataSync構築編~](https://qiita.com/hidekko/i

元記事を表示

CloudFormationテンプレート小ネタサンプル集

## パラメータのグルーピング・順番固定
パラメータ定義だけだと、入力項目がアルファベット順にソートされる。
固定したい場合は[AWS::CloudFormation::Interface](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html)を利用する。
“`yaml
Parameters:
PJPrefix:
Type: String
Environment:
Type: String
VPCCidr:
Type: String
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
– Label:
default: General
Parameters:
– PJPrefix
– Environment

元記事を表示

DynamoDB: 更新したいオブジェクトから動的に更新式を生成させる

# 背景
DynamoDB を利用していて、データを更新しようとした際に、更新オブジェクトが動的な場合の対処方法の記録

GCP だと、Merge: true で終わっちゃうやつ?

# 案
## GetCommand + Merge + PutCommand
この場合、lodash.merge で 取得したデータに、更新データを merge するだけで簡単に出来て、しかも PutCommand 時には、Key & Item で簡単に Update という名の置換が出来る

但し、以下課題がある
1. 置換なので、たぶん Lambda で Insert Event が発生する
– 本来なら更新なので、Modify になってくれないと困る
1. Get & Put で二回 API Call される

## 更新式を動的に作成して UpdateCommand
これを実施する為に、以下を調査したので、いざ実践って話

https://qiita.com/baku2san/items/cb9efcd81f64a008c0dd

# 結論
## 実装例
こんな感じで、Key (この場合は

元記事を表示

Amplifyのビルド時に表示されたエラー

## はじめに
フロントエンドの勉強をしていて、作成したWebサイトをAmplifyでホスティングすることにしました。
その中でAmplifyのビルド時にエラーが表示されたため、その内容を記載します。

## ビルドの設定
Amplifyのビルドの設定として、最初は下記の設定をしていました。
“`php:amplify.yml
version: 1
frontend:
phases:
preBuild:
commands:
– nvm install v12.16.2
– nvm use v12.16.2
– npm install -g yarn
– yarn install
– node -v
build:
commands:
– yarn run build

artifacts:
baseDirectory: dist/
files:
– ‘**/*’
cache:
paths:

元記事を表示

CircleCIの不可視のAWSクレデンシャルを削除する

正月早々にCircleCIがしでかしてくれたので、休み返上でCircleCI上のシークレットのローテーションに追われました。(対応された皆様お疲れ様です?)

– [CircleCI セキュリティアラート: CircleCI 内に保存されているシークレットのローテーションをお願いいたします](https://circleci.com/ja/blog/january-4-2023-security-alert/)

その際、少々はまりどころがあったので記載します。

# 問題
AWSより、CircleCIに登録されていない(ように見える)AWSクレデンシャルをローテートしろと通知が来た

# 原因
太古の昔に使われていたCircleCI プロジェクトのAWS Permissionが**UI上は廃止されたのに**生きていたため。

# 解決策
curlで以下を叩いて削除する。

`${CIRCLECI_VCS}` は `github` か `bitbucket` のどちらか
`${CIRCLECI_ORG}` はCircleCIのorganization名
`${CIRCLECI_PROJ

元記事を表示

AWS Certified Developer – Associate 合格体験記

# AWS Certified Developer – Associate 合格体験記

## この記事の主旨
2023 年 1 月 10 日に AWS 認定資格 DVA を取得しました。取得までの流れや反省点などをまとめる記事となります。
特に、SAA を取得してから間を開けず受験した形になりますので、SAA 取得後のネクストステップを考える方の参考になればと思います。

## 前提

対策開始時の私の状態です。

– AWS 資格は CLF、SAA を所持(SAAは先月取得)
– 実務での運用、開発経験は無し
– その他情報系の資格無し

学習期間は約 1 か月を目標とします。また、試験対策に有料コンテンツを使用します。

## 学習計画

SAA の試験対策からお世話になった Udemy の問題集を今回も使っていきます。問題量と範囲の広さ、解説の充実度で期待ができるので、基本的には当該問題集を周回するだけで大丈夫だろうと高を括っています。

そのほか、AWS 公式開催の Bootcamp に参加し、いくつかハンズオンも行なっています。
SAA 取得時点まで私の学習内容は以前に投稿

元記事を表示

CloudFrontの地理的制限とカスタムエラーページを検証する

# 地理的制限とは

CloudFrontの地理的制限を利用することで、所定の地域からのIPアドレスを許可したりブロックしたりすることができます。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudfront-geo-restriction/

例えばこのようにアメリカのみに制限してみます。

![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96507/3c168362-7a3b-75d4-f804-d213b06e498c.png)

すると、日本のプロバイダを通してインターネットへアクセスしている私からは、このCloudFrontディストリビューションで配信しているサイトにアクセスできず403エラーが返ります。

![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiit

元記事を表示

KMSポリシー作成時の注意点

## CloudFormationでKMSポリシーを作成する際の注意点

①principalには別アカウントのIAMユーザーやロールを指定することは出来ない。つまりKMSを作成するアカウント内にあるIAMユーザーやロールだけ指定できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733779/0849aeed-5c50-d7ec-dddb-2e21406149e9.png)
コンソール上だと別アカウントのロールやユーザーは選択できないが、
CFnでは別アカウントのユーザーやロールを記載することは可能だが、
エラーになります。

元記事を表示

sigfoxをESP32で使ってみる②(sigfoxクラウド~AWSIoTCoreとの連携)

# はじめに
前回はモジュールを接続して、sigfoxクラウドにメッセージ送信まで確認できました。
今回はもう少し踏み込んで、AWSのIoTCoreと連携させDynamodbやTimeStreamなどのDBに情報を書き込むまでをゴールにしたいと思います。

前回その①

https://qiita.com/taiyyytai/items/4b83aba34c1626a6f2b5

# AWSIoTCoreの設定
先にエンドポイント側を設定しておく必要があります。
IoTCoreでデバイスを登録してトピック名まで設定してください。

詳細は私の過去記事を参照ください。

https://qiita.com/taiyyytai/items/b7bbc16efe8eba0dac78

:::note info
MQTTによる通信確認であればルール設定までは不要です。
IoTCoreのMQTTモニタリングで通信確認可能です。
:::

# Sigfoxクラウド側での設定
## 位置情報オプションの確認
**DeviceType→information**内にある**Options**を確認

元記事を表示

AWSのCloud9でのプロジェクトをGitHubとSSH接続して開発を楽にしよう

# 経緯
SSH接続をちゃんとやったことがなかったので、一念発起して実施してみた記録です。
あと、G’s ACADEMY [(LINK)](https://gsacademy.jp/)というところで生徒のプログラミング学習のサポートをしていて、受講生からSSHに関して質問されたので、アウトプットも兼ねて記事にした次第です。
今回はcloud9とgithubを繋いでLaravelのプロジェクトをpushする所までの流れになります。

### Cloud9とは
>AWS Cloud9 は統合開発環境、または IDE です。
>
>この AWS Cloud9 IDE では、リッチなコード編集エクスペリエンスを実現しており、複数のプログラミング言語、ランタイムデバッガ、および組み込みターミナルがサポートされています。また、クラウドでソフトウェアのコード作成、ビルド、実行、テスト、デバッグに使用するツールが含まれており、ソフトウェアをクラウドにリリースするのに役立ちます。

https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/w

元記事を表示

いまさらAI学んでみた(第4.5回)

# はじめに
こんにちは、株式会社ジールの[@Suguru-Terouchi](https://qiita.com/Suguru-Terouchi)です。
三が日は子供の胃腸炎をもらって腹痛と高熱で寝込んでました。
気を取り直して、2023年も頑張っていきましょう。

さて、[前回](https://qiita.com/Suguru-Terouchi/items/56c6d5138528fcd256e7)まで基礎編として機械学習の3つの手法を学んできました。
今回から実践編に入っていきたいと思いますが、まだそこまで仕事モードに入れていないので、
準備運動も兼ねて、第4.5回としてゆるっとAI/機械学習ことはじめしていきたいと思います。

# サクッと触れるAI/機械学習
前回、AWSのDeepRacerというサービスをご紹介させて頂きましたが、
それ以外にもAWSで提供されているAI/機械学習サービスはいっぱいあります。

どれくらいあるかというとこれくらいある。(執筆時点で26サービス)
![image.png](https://qiita-image-store.s3.ap-nor

元記事を表示

【備忘】Gitコマンド一覧

## はじめに
AWS CodeCommitを使い始めて、Gitコマンドによる操作を行うことが多くなりました。
よく使うGitコマンドを備忘としてまとめます。

## コマンド一覧
|コマンド | 内容 |
|:————————————|:—————————————————–|
|git clone <リモートリポジトリURL> |対象のリモートリポジトリをローカルにクローン |
|git branch |ローカルブランチの一覧を表示 |
|git checkout -b <ブランチ名> origin/<リモートブランチ名> |リモートブランチから新しいブラ

元記事を表示

入門 AWS CloudFormation #2(EC2のセキュリティグループ編)

インフラやクラウドの専門というわけではないのですがそろそろIaC周りもちゃんと勉強しておきたい・・・という感じなのでAWSのCloudFormationについて入門しつつ復習として記事にまとめておきます。

※とりあえず最初ということでEC2を絡めたごく基本的なところの記事を書いていきます。将来もしかしたら3記事目以降を執筆して追加のEC2関係や他の様々なサービスや機能などにも触れていくかもしれません。

# 注意事項と記事までの振り返り

本記事の処理を動かすとEC2関係などで色々と追加になったり起動したりします。その辺はリソースの停止や削除などをしないとお金がかかったりしてくる可能性があるためご注意ください。

また、本記事は2記事目となります。前回までの内容を踏襲していく形となっているのでご注意ください。

1記事目:

https://qiita.com/simonritchie/items/330391e741f394897550

前回までに設定した主な内容:

– `cloudformation-test-1`と`cloudformation-test-2`という名前での

元記事を表示

AWS Certified Cloud Practitioner 受験記録

# はじめに

AWS未経験者が1週間準備して受験しました(2023年1月)。

[AWS Certified Cloud Practitioner(CLF)](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)はAWS資格の中で、最も基礎レベルの試験です。
AWSが提供するサービスを概要を広く問われます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599506/156e1314-9de7-81fd-70f5-4beb40f2fdf8.png)

# 自己紹介
– 会社:従業員多めのメーカー
– 仕事:先行開発部隊で信号処理開発や解析・評価。
プログラミングはするけど業務でのソフト開発は未経験
– AWS経験:数時間程度≒未経験。

# なぜ受けたのか
– ~~お金に目が眩んだからです~~
– ~~会社とAWSが主催するイベントに参加し、受験料半額のバウチャーを

元記事を表示

OTHERカテゴリの最新記事