- 1. RDSのDownloadCompleteDBLogFile(非クエリAPI)とDownloadDBLogFilePortion(クエリAPI)
- 2. ECRからのCodePipelineが走らなくなってた話
- 3. Twitterでのコード投稿の見栄えどうにかならんのと思った話
- 4. AWS CLIでMFAトークンを使用してAPI実行するメモ
- 5. WorkSpacesにCloudWatchAgentを導入してログ転送する方法
- 6. AWS 認定 Alexa スキルビルダー取得にむけて、全然わからんので用語を整理してみる
- 7. Lambda+APIGateway設定で「CORS の有効化」をオンにしたのにCORSエラーになる
- 8. Amazonlinux2にgoofys入れてS3をマウントした件
- 9. CloudFormationの nested stack が使いづらい件
- 10. WafCharmを始めるときに知っておきたいTips
- 11. Azure ADでSAML認証してAWSCLIを実行する方法
- 12. AWSからS3にデータをダウンロードするときの個人的メモ(その他ファイル操作に関しても)
- 13. PWA+Angular8+AWS amplifyを試す PART#1
- 14. 既存EC2インスタンスにAWS Cloud9を構築する
- 15. [AWS SSO] SAML認証で追加したアカウントへのsts一時認証キーの取得方法
- 16. Flutterで作ったアプリから入力した電話番号あてにAWS SNSからSMSの送信をする方法(ざっくり)
- 17. Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #18 (ロボット工学)
- 18. aws cliを自作しています
- 19. AWS CLIでKMSを試すメモ
- 20. SQLで緯度経度からメッシュコードを計算する
RDSのDownloadCompleteDBLogFile(非クエリAPI)とDownloadDBLogFilePortion(クエリAPI)
#はじめに
RDSのログをダウンロードする権限つけたろーと思うと、何か2つありますね。
– `rds:DownloadCompleteDBLogFile`
– `rds:DownloadDBLogFilePortion`まずはポリシージェネレータとかで見ますよね。
![Policy Generator – awspolicygen.s3.amazonaws.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155963/72d624ab-3ef7-3973-8247-2d03422dcfb5.png)
https://awspolicygen.s3.amazonaws.com/policygen.html
やっぱり2つありますね。「よくわからんけど両方つけとくかー」が許されない場合があるので、両者の違いを確認します。
#DownloadDBLogFilePortionとは
APIリファレンスは以下です。
https://docs.aws.amazon.com/AmazonRDS
ECRからのCodePipelineが走らなくなってた話
ECRへのプッシュをトリガーにpipeline回したいけど、なんでかわからん、って話があって、下記の手順で検証してみます。
https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/create-cwe-ecr-source-console.html
1. ECRにレポジトリ作る
2. CodePipelineのSourseをECRにする
3. (その他も設定)
4. ECRにイメージをpush
5. Pipeline回らないほー。確かに。
# 検証内容
## Source
![スクリーンショット 2019-11-30 0.06.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/d0368182-98eb-a0ba-9784-739fed5af0c4.png)
## ECR push
“`
$ $(aws ecr get-login –no-include-email –region ap-no
Twitterでのコード投稿の見栄えどうにかならんのと思った話
たぶん、長い投稿
# きっかけ(こんな呟きを見かけた
ソースコードをツイートするときに
“`
source code
“`ってやってマークダウンみたいに引用文にして欲しい。
ここはもうURLとかハッシュタグとかも全部エスケープして欲しい。— えるは個人えんじにゃー(喪中) (@ellnore_pad_267) November 2, 2019
# 出来たもの
– [Codr0:https://codr0.herok
AWS CLIでMFAトークンを使用してAPI実行するメモ
# 前提
– IAMユーザーを作成済であること
– プログラムからアクセス
– 仮想MFAを設定済み(ARNを控えておく)
– 以下のポリシーをインラインポリシーで設定済み“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AllDenyWithoutMFA”,
“Effect”: “Deny”,
“Action”: [
“*”
],
“Resource”: [
“*”
],
“Condition”: {
“BoolIfExists”: {
“aws:MultiFactorAuthPresent”: false
}
WorkSpacesにCloudWatchAgentを導入してログ転送する方法
#はじめに
WorkSpacesにCloudWatchAgentを導入してログ転送するのに1日かかってしまったので覚書。
方法は二つあるのでそれぞれ軽くメモ。#前提事項
SSM AgentではなくCloudWatchAgentを使用する。理由はSSM Agentを使用したログ転送が将来的にサポートされなくなるから。
WorkSpacesにはIAMロールをアタッチできないのでオンプレミス環境とみなしてCloudWatchAgentを導入していく。https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/download-cloudwatch-agent-commandline.html:embed:cite
上記URLからWindows Server向けのリンクを探しパッケージを落としてインストール。
#ロール
IAMユーザーにCloudWatchAgentAdminPolicyをつけておく。
ログ転送やメトリクスなど用途に応じて削っても問題はないと思われる。(未検証)#方法
AWS 認定 Alexa スキルビルダー取得にむけて、全然わからんので用語を整理してみる
# はじめに
AWS認定資格としてAWS 認定 Alexa スキルビルダーが気がつけば追加されていた。
Amazon Lexならともかく、AlexaってAWSの仲間なの? 的な疑問はさておき、AWSなのにBlackbeltに説明もなく仕様も良くわからん。というのが正直なところ。
資格取得はまあ置いといて、とりあえずカスタムスキルの概略まで頑張って理解した時のメモ。## アカウント管理
AWSな人たちが触れる最初の壁。
Alexa開発視点でまとめると、こうなる?– AWS 開発者コンソール(Amazon Developer)
– 2019.11現在「Alexa Skills Kit(ASK)」「Alexa Voice Service(AVS)」の開発に対応。
– ASKがAlexaスキルの設定の要となるもの。
– AVSは今回は省略。
– AWSアカウント
– (AWS使いには)おなじみアカウント
– Alexaスキルのバックエンドのリソースを構築・設定するところ。
– 基本はAWS Lambda、EC2/Fargate等でいい感じに処理すればOK
Lambda+APIGateway設定で「CORS の有効化」をオンにしたのにCORSエラーになる
# 「CORS の有効化」をオンにしたのに
## ハマりポイント
APIGateway設定で「CORS の有効化」をオンにしているのに,
> Access to XMLHttpRequest at ‘https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/xxx/xxxx’ from origin ‘http://xxxxx’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.とエラーが返ってくる.
## 解決策
Lambdaのreturnのヘッダーに以下のように,Access-Contraolについて書かなきゃダメだった.“`json
return {
‘isBase64Encoded’: False,
“headers”: {
“Access-Control-Allow-Origin”
Amazonlinux2にgoofys入れてS3をマウントした件
メ〇スは激怒した。普通にgoのインストールもyumでやってみたらバージョンが低いと怒られたのだ。
題名の通り。ちょっと工程往復する羽目になったので作業記録として遺しておく。
#下準備
git はgoofys入れるために fuseはgoofysと依存yum install git fuse -y
#実作業的な奴
goを入れるcd /usr/local/src/
wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
tar -C /usr/local -xzf /usr/local/src/go1.13.4.linux-amd64.tar.gz~/.bash_profileに書く(めんどう
export GOROOT=/usr/local/go
export GOPATH=${HOME}/go
export PATH=${PATH}:${GOROOT}/bin
export PATH=${PATH}:${GOPATH}/bingoofys入れ
CloudFormationの nested stack が使いづらい件
一言で言うと **子スタックのチェンジセットが一切見えない** ので使いづらい。
いろいろ検索してみたけど日本語の結果が出てこなかったので検索用メモとして。
(こういうときにつけるタグってなんだろう。。。)## nested stack[^nested-stack]
> ネストされたスタックは、他のスタックの一部として作成されたスタックです。
複数のスタックを連携させる方法としては出力値を用いたクロススタック参照[^cfn-output]などもあるが、それよりももっと直接にスタックの親子関係を構築する仕組み。
### 例
以下のような複数のテンプレートがあるときに、
– parent.yaml に対して `aws cloudformation package` を実行する
– package処理結果のyamlに対して `aws cloudformation deploy` を実行するという手順を踏むことで、子テンプレートの内容を含めてまとめて parent.yaml のスタックでリソース管理できる。
“`yaml:parent.yaml
AWSTemplateFo
WafCharmを始めるときに知っておきたいTips
最近WafCharmを導入したのですが、公式以外にあまり情報がなかったので公式サイトに記載がないTipsなどをまとめることにしました。
# WafCharmとは何?
[WafCharm公式](https://www.wafcharm.com/)
サイバーセキュリティクラウドが提供する、**AWS WAF運用を支援してくれるサービス**です。WafCharm自体は**WAFではありません**。Managed Rulesとも違います。
あくまでAWS WAFの支援サービスなので、利用できるのはAWS WAFに対応しているCloudFront, ALB, API Gatewayのみです。
2019年11月28日時点ではAWS WAF v2に対応しておらず、AWS WAF Classicのみ対応しています。# 導入の注意
## WafCharm以外の費用
WafCharmの利用コスト以外に、– AWS WAFの利用費用
– CloudFront, ALB, API GatewayアクセスログログのS3保存費用がかかります。
さらに、攻撃通知メールを受信するために– Kin
Azure ADでSAML認証してAWSCLIを実行する方法
## 概要
– セキュリティポリシーでIAM Userの作成/使用が原則禁止されている現場ってありますよね?
– AWSのAPIKey流出事故は何度も見聞きしているので、IAMUser作成を禁止するのは理解できます。
– IAMUserを使わずにログインする方法の一つとして、AzureAD経由でSAML認証する方法があります。
– AzureAD側でMFAログインを必須化することもできて、とてもセキュアな設計なのですが、AWS CLIを使うのにひと手間かかります。
– 今回はその手間を省くツール[aws-azure-login](https://github.com/sportradar/aws-azure-login)を見つけたので、使い方をメモしておきます。## インストール方法
“`sh
$ npm install -g aws-azure-login
“`
– インストールは簡単ですね。## 初期設定の手順
“`
$ aws-azure-login –configure –profile“`
– READMEに書いてある通り設
AWSからS3にデータをダウンロードするときの個人的メモ(その他ファイル操作に関しても)
##S3からローカルにデータを引っ張ってくる
###1.準備
AWS CLIをインストール。
[参考- AWS CLI 公式ドキュメント](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html)インストール後、`aws configure`を打ち、設定を行う。
“`
aws configure
AWS Access Key ID [None]: AMIアクセスキーを入力
AWS Secret Access Key [None]: AMIシークレットキーを入力
Default region name [None]: S3バケットの利用しているリージョンを記入(ap-northeast-1など)
Default output format [None]: 利用するフォーマットを入力(適当でいい?text jsonなど)
“`[参考 – AWS CLI 公式ドキュメント](https://docs.aws.amazon.com/ja_jp/cli
PWA+Angular8+AWS amplifyを試す PART#1
# きっかけ
最近話題のPWAを試してみようと思い、メモを兼ねてQiitaへの投稿を始めてみた。
本業は組込みシステムのソフトウェアに携わっており、WEB系は初心者です。
初心者ながら少しずつ成長する姿を見守っていただければ幸いです。
アドバイス等頂けると助かります。# PART1
・Angularの雛形を作る
・angular/cliをインストール
・ブラウザに表示されるかテスト# 環境
“`
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | ‘_ \ / _` | | | | |/ _` | ‘__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \___
既存EC2インスタンスにAWS Cloud9を構築する
# 前提条件
– EC2 インスタンスが既に構築済み
– 対象インスタンスのセキュリティグループを変更可能(運用的に)
– EC2に外部IPがある
– regionが東京である(東京ではない場合、22portを許可する帯域を調べる必要がある)
– 踏み台を使って構築することも可能だが今回は行わない# 手順
1. EC2のセキュリティグループに18.179.48.128/27,18.179.48.96/27を22portに対して許可
2. [AWS Cloud9](https://ap-northeast-1.console.aws.amazon.com/cloud9/home?region=ap-northeast-1#)にアクセスする
3. 「Create environment」を押す
4. 適当なNameとDescriptionを入れてNextStep
5. 「Connect and run in remote server (SSH)」を選択し、「View public SSH key」をクリックして表示される公開鍵を対象のEC2インスタンスの/home/{User}/
[AWS SSO] SAML認証で追加したアカウントへのsts一時認証キーの取得方法
# AWS SSO SAML認証で追加したアカウントへのsts一時キーの取得方法
`AWS SSOってとにかく便利! そう思っている今日このごろです`
今回はAWS SSOを使って2種類のアカウントへのアクセスkeyの取得を試しました
– AWS organizations配下のアカウントをSSO配下に参加させるパターン
– 別組織のアカウントをSAML認証によりSSO配下に参加させるパターン![スクリーンショット 2019-11-29 9.01.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/344266/102b1d74-2fd4-852b-4e40-571d71af5068.png)
## AWS organizations配下のアクセスkeyの取得
まず、こちらはすごく便利ですね。
コンソールからボタンポチポチで追加できますし、一時keyの発行もブラウザベースで簡単に可能です。対象のアカウントを選択して
![スクリーンショット 2019-11-29 9.12.12.
Flutterで作ったアプリから入力した電話番号あてにAWS SNSからSMSの送信をする方法(ざっくり)
# Flutterで作ったアプリから入力した電話番号あてにAWS SNSからSMSの送信をする方法
## やりたいこと
入力された電話番号あてにPINを送信したい!
## 使うもの
“`
AWS
| DynamoDB
| API Gateway
| Lambda
| L Node.js 12x
L SNS
Flutter
L http 0.12.0+2
“`## DynamoDBの準備
PINコード保存用のテーブルを作成します。
“`json
“pin”: {
“user_id”:””,
“pin”:””,
“ttl”:”” //TTL設定
}
“`## Lambdaの準備
SMSの送信は “`publish()“`を使うことで簡単に送ることができます。
“`js
const AWS = require(‘aws-sdk’);
const sns = new AWS.SNS();
const documentClient = new AWS.DynamoDB.DocumentClient();exports.handl
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #18 (ロボット工学)
Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。
Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/まとめルールについては下記を参考ください。
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!
## Robotics – ロボット工学
### AWS RoboMaker
– 正式名称: AWS RoboMaker
– https://docs.aws.amazon.com/robomaker/?id=docs_gateway
– 読み方: ロボメーカー
– 略称: なし
– 俗称: なし
aws cliを自作しています
aws cliを自作しています。AWSの中身を理解するためにAPIを叩きまくろうと思ってです。Pythonのboto3を使っています。Pythonの練習でもあります。おかげでかはわかりませんが、前よりもずっとAWS触りやすくなりました。
自作ツールではAWSのリソースの閲覧に特化して、いちいちヘルプを見なくても使えることを目指しています。
# aws cliで感じてること
aws cliは help を見れば使い方がわかりますが、サブコマンドごとにいちいちヘルプを見ないといけません。またパラメータが非常に多いサブコマンドもあり、ヘルプを見ながらコマンドを打っていくのがつらいです。こんな長いコマンドはなかなかすらすら打てるようにはならないです。
“`
# とても長い覚えられないコマンドの例
$ aws cloudwatch get-metric-statistics –namespace AWS/Lambda –metric-name Duration \
–dimensions ‘Name=FunctionName,Value=xxxx’ –start-time
AWS CLIでKMSを試すメモ
# 前提(用語)
– カスタマーマスターキー(CMK)
– AWS側で管理される鍵
– データの暗号化には直接利用しない
– マネジメントコンソールであらかじめ作成しておく(持ち込みも可能らしい)
– カスタマーデータキー(CDK)
– ユーザーがデータの暗号化に用いる鍵
– 通常はAWSで暗号化されて保存されており、データの暗号時/複号時に、都度復号化して取得する# 概要
データを暗号化/復号化する流れ。暗号化/復号化に用いる鍵(CDK)をKMSで管理する。
CMKはあらかじめ作成しておくこと。# 手順メモ
## 1. カスタマーデータキーを作成する
“`
% aws kms generate-data-key –key-id “[CMKのキーID]” –key-spec “AES_256”
{
“Plaintext”: “[平文のカスタマーデータキー]”,
“KeyId”: “[CMKのARN]”,
“CiphertextBlob”: “[暗号化されたカスタマーデータキー]”
}
“`##
SQLで緯度経度からメッシュコードを計算する
# メッシュコードについて
メッシュとは緯度経度に基づいて、地域を格子状に分割したもので、
メッシュコードとは、この地域メッシュに割り当てられたユニークな識別番号になります。
測地系は平成14年4月1日以前は日本測地系でしたが、それ以降は世界測地系に準じているようです。
この記事では、私がよく使うPostgreSQLとAWS Athena(Presto SQL)で緯度経度からメッシュコードを計算するクエリを紹介いたします。計算方法の参考文献:http://www.stat.go.jp/data/mesh/pdf/gaiyo1.pdf#page=7
# クエリ
紹介するクエリは以下のSQLで動作することを確認しております。– PostgreSQL
– PrestoSQL(AWS Athena)今回はlon, latがともに世界測地系であることを前提としています。
## 1次メッシュ
– 辺の長さ:約80km
– 経度差:1度
– 緯度差:40分“`sql
WITH t AS (
SELECT
139.71475 AS lon,
35.70078 AS