ablog

不器用で落着きのない技術者のメモ

2020-04-01から1ヶ月間の記事一覧

Amazon Redshift に対してタグでアクセス制御を行う

AWS

タグキー "environment" の値が "test" に設定されている Redshift クラスターのみに対してフル権限を付与する設定例。その他の Redshift クラスターについてはリスト、参照権限を付与している。 Redshift クラスターを選択し、[プロパティ]-[タグ] で以下の…

jq メモ

jq

jq に環境変数を渡す "env.変数名" で渡すことができる export TARGET_DATE=20200425 logs_json=`aws rds describe-db-log-files --db-instance-identifier ${DB_INSTANCE_IDENTIFIER}|jq '.DescribeDBLogFiles[]|select(.LogFileName|contains(env.TARGET_D…

Redshift の接続ログを取得する Python スクリプト

コード redshift_get_connection_log.py #!/usr/bin/env python3 import os import csv import psycopg2 import datetime now = datetime.datetime.now() begin_time='{0:%Y-%m-%d %H:00:00}'.format(now - datetime.timedelta(hours=1)) end_time='{0:%Y-%m…

Pythonメモ

全般 パッケージリポジトリ: PyPI · The Python Package Index コード シェバン コード #!/usr/bin/env python3 参考 Pythonプログラムの先頭行の #! シバン(Shebang)について | ガンマソフト株式会社 Magic comment # -*- coding: utf-8 -*- 参考: Python…

iPad Air を Macbook Pro のセカンドディスプレイにしてみた

Mac

iPad Air を Macbook Pro のセカンドディスプレイにしてみた。macOS Mojave で Apple 純正の Sidecar は使えないため*1、元 Apple エンジニアが開発したアプリ Duet Display を使った。かかった総コストは1,220円。 インストール iPad に Duet Display イン…

Amazon Redshift で監査ログを取得するクエリサンプル

AWS

Amazon Redshift で監査ログを取得するクエリサンプル。 取得項目 テーブル or ビュー カラム 説明 stl_query starttime 実行開始時刻 stl_query endtime 実行終了時刻 stl_connection_log remotehost リモートホストの名前または IP アドレス stl_query ser…

APGアクティビティストリームの KMS カスタマー管理キーに対する Kinesis Firehose のアクセス権

AWS

Aurora PostgreSQL互換でアクティビティストリームを開始すると、監査ログが Kinesis Data Stream に書かれるが、アクティビティストリーム開始時に必ず KMS のカスタマー管理キーを指定しないといけないようになっている。Kinesis Data Stream のコンシュー…

KMS で同一アカウント内からのアクセスを許可するキーポリシー

AWS

KMS で同一アカウント内からの暗号化/復号を許可したい場合、キーポリシーは Condition 句の StringEquals で kms:CallerAccount を指定すれば良い。 KMS でカスタマー管理型キーを作成 以下のキーポリシーを設定する。 { "Version": "2012-10-17", "Id": "…

Amazon EC2 の EBS 帯域幅

AWS

20190305 AWS Black Belt Online Seminar Amazon EC2 from Amazon Web Services Japan 20190305 AWS Black Belt Online Seminar Amazon EC2 from Amazon Web Services Japan https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-optimized.html

Python で関数の戻り値でハンドリングする

コードサンプル def decrypt(decoded, plaintext): (中略) if len(entries) > 0: return entries else: return None (中略) def lambda_handler(event, context): (中略) data = decrypt(decoded, decrypt_result[u'Plaintext']) if data is not None:…

AttributeError: 'str' object has no attribute 'read'

事象 Aurora PostgreSQL互換のアクティビティストリームを Kinesis Firehose で S3 に出力し、Lambda で読んで JSOn コード def load_iter(text: str) -> Generator: size = len(text) decoder = JSONDecoder() index = 0 while index < size: obj, offset =…

Kinesis Firehose S3 に出力した JSON を Python でパースする

from json.decoder import WHITESPACE, JSONDecoder from typing import Generator def load_iter(text: str) -> Generator: size = len(text) decoder = JSONDecoder() index = 0 while index < size: obj, offset = decoder.raw_decode(text, index) yield…

Linux や macOS で隠しファイルを含めて ZIP で圧縮する

Linux や macOS で隠しファイルを含めて圧縮する。 $ zip -r foo.zip . 参考 隠しファイルを含むzip

Aurora PostgreSQL 互換のアクティビティストリームを Lambda でデコードする

AWS

設定 KMS キー作製 カスタマー管理型の対称キーを作成。 Aurora PostgreSQL互換 Aurora クラスターを作成する。 エンジンバージョン: 11.6 クラスターを選択して、[アクション]-[アクティビティストリームの開始] を選択。 マスターキー: KMS のキーを選択す…

AWS Lambda で Amazon Redshift から S3 に UNLOAD する

AWS

AWS Lambda で Amazon Redshift から S3 に UNLOAD してみたメモ。 セットアップ手順 Redshift クラスターを作成する。 Redshift に IAM ロール redshift-role を作成してアタッチする。 arn:aws:iam::aws:policy/AmazonS3FullAccess ポリシーをアタッチした…

macOS で head コマンドを使う

coreutils をインストールして、 $ brew install coreutils パスを通す。 $ vi ~/.bash_profile PATH=/usr/local/opt/coreutils/libexec/gnubin:${PATH} MANPATH=/usr/local/opt/coreutils/libexec/gnuman:${MANPATH} $ . ~/.bash_profile 参考 テキスト処理…

Python から Redshift に接続してみる

$ sudo yum -y install python-psycopg2 $ export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.6/dist-packages GitHub - jkehler/awslambda-psycopg2 から Lambda 用の psycopg2 をダウンロードする。 Python 2の場合、psycopg2 を圧縮する。 圧縮する $ ls…