かべぎわブログ

ブログです

AWS

AssumeRoleするときに外部IDをもとめるようにする

AWS

概要 クロスアカウントでAssumeRoleするときに外部IDを使用させる方法です。 悪意のある第三者にロール名、アカウントIDが漏洩しても、外部IDがわからなければAssumeRoleされないようになり、セキュリティの向上が見込めます。 手順 IAMロール作成 以下のよ…

fluentdからfluentdにとばす

概要 fluentd(td-agent)からfluentdにログを飛ばす方法です。 こんなかんじ 送信する側 飛ばしたいログファイル等は適当に変更しちゃってください。 @type forward , port 24224 でログを飛ばしてあげます。 <source> @type tail path /path/to/log.log pos_file /pa</source>…

IAMユーザの名前を変更する

AWS

IAMユーザの名前変更はマネジメントコンソールからはできない。 以下のAWSCLIで変更するのがいちばんかんたんだとおもいます。 aws iam update-user --user-name 今の名前 --new-user-name 新しい名前

CloudFormation DeletionPolicy

AWS

CloudFormationのDeletionPolicyをつかうと、スタックを削除してもリソースをそのまま保持することができる。 DeletionPolicyの項目 Delete(削除) Retain(保持) Snapshot(スナップショット) デフォルトのDeletionPolicyはDelete(削除)である。例外として、AW…

Pythonで削除保護されているEC2インスタンスを削除する

AWS

ひさびさの更新 削除保護されてようが削除してくれるスクリプトです。 github.com

IAMポリシーを更新してくれるシェルスクリプトを書いた

IAMポリシーを更新してくれるシェルスクリプトです。 バージョン数が5を超えていると最も古いバージョンを削除してくれます。 シェルスクリプトは最近書く機会があんまりないんだけれどもやっぱり楽しいですね。 1日1問、半年以内に習得 シェル・ワンライナ…

手元のDockerイメージをECRにプッシュしてくれるスクリプトをかいた

べんりですね github.com

sls deploy したときに~/.aws/configを見にいってくれない

sls deploy したときに~/.aws/configを見にいってくれないようだった。 解決策は以下の変数を宣言してあげる。 export AWS_SDK_LOAD_CONFIG=1 以下を参考にした。 https://github.com/serverless/serverless/issues/3833#issuecomment-513914807

Session Manager でec2-userをつかう

AWS

これ sudo su --login ec2-user

Console Recorder for AWS

AWS

べんりです。 マネジメントコンソールでの操作をAWSCLIとかに変換してくれます。 https://chrome.google.com/webstore/detail/console-recorder-for-aws/ganlhgooidfbijjidcpkeaohjnkeicba

AWSCLIでS3のファイルの中身を見る

AWS

aws s3 cp 見たいファイル - でできる。 準備 $ echo 'wawawa' > test.txt $ aws s3 cp ./test.txt s3://my-bucket upload: .\test.txt to s3://my-bucket/test.txt みる。 $ aws s3 cp s3://my-bucket/test.txt - wawawa

LambdaでKinesis Stream のなかのデータをprintする

こんなかんじ。 import base64 def lambda_handler(event, context): data = event['Records'][0]['kinesis']['data'] result = base64.b64decode(data) print(result)

Kinesis Data Streamsになにかデータつっこんで確認してみる

AWS

Kinesis Data Streamsにてきとーなデータをつっこんでみます。 手順 1. データストリームの作成 aws kinesis create-stream --stream-name kabegiwa-stream --shard-count 1 確認 aws kinesis list-streams { "StreamNames": [ "kabegiwa-stream" ] } 2. レ…

AmazonLinux2にRuby2.4をインストールする

AWS

これでインストールできる。 sudo amazon-linux-extras install ruby2.4

AWSの月間利用料を取得するPythonを書いた

概要 PythonでAWSの月間利用料を取得するスクリプトをかきました。 今回のものは他のPythonスクリプトから読み込ませることも意識しています。 成果物 これです。 github.com usage Command line python get_monthly_cost.py --help usage: get_monthly_cost…

CircleCIでLambda(Python)をsls deployする

概要 CircleCIでLambda(Python)をServerless Frameworkをつかってデプロイしてみます。 GitHubにCommitされるとCircleCIでsls deployしてAWSにデプロイするようなイメージ。 手順 手順です。 1. 事前準備 以下に役に立つページがあります。 手順5まですすめ…

Serverless FrameworkでLambda(Python)をデプロイする

概要 Serverless FrameworkをつかってLambda(Python)をAWS環境にデプロイしてみます。 手順 手順です。 1. テンプレートを作成する 今回デプロイするAWS Lambda用のServerless Frameworkのテンプレートを作成します。 serverless create --template aws-pyth…

CloudFrontでS3に307リダイレクトされるときの原因と対処法

AWS

概要 CloudFrontでオリジンをS3にしているときに、設定は間違っていないのにCloudFrontのURLからS3のURLにリダイレクトされてしまって、Access Deiniedってなってんーーーーーーーーーー??????ってなるときの原因と対処法です。 原因 基本的に全部以下…

CloudFront経由でのみS3のコンテンツにアクセスさせる

AWS

概要 CloudFrontのオリジンアクセスアイデンティティを使用して、CloudFront経由でのみS3バケット内のコンテンツにアクセスさせてみます。 手順 CloudFrontのオリジンの設定で以下のように設定します。 RestrictBucketAccessをYesに、 Origin Access Identit…

AWSCLIでAWSアカウントを作成する

AWS

概要 AWSCLIを利用してAWSアカウントをコマンド一撃で作成してみます。 前提 AWS Organizationsのマスターアカウントである アカウント作成の権限がある コマンド これでいけます。 アカウント名とルートアカウントのメールアドレスを指定してあげるだけです…

ECS上でApacheを動かしてアクセスする

AWS

概要 ECS上でApacheを動かしてアクセスするだけのおはなしです。 具体的には以下のような構成です。 手順 ALBを作成する ECSに接続するLBを事前に作成しておきます。 リスナーをHTTPSで ターゲットグループはポートを8080にします。ヘルスチェックは/health…

ALBにACM/SSL証明書を関連付ける

AWS

概要 ALBにACM/SSL証明書を関連付けてみます。 画像のような感じです。 基本的なかたちですね。 ユーザからALBまではHTTPSで、ALBからEC2までの内部通信はHTTPです。 手順 1. ACMで証明書を取得する 以下ですこしやりました。 www.kabegiwablog.com 2. EC2イ…

お名前.comで取得したドメインの証明書をACMで取得する

AWS

概要 お名前.comで取得したドメインの証明書をACMで取得してみます。 手順 こんなかんじの手順です。 1. Route53 Hosted Zoneを作成 Route53でACMを取得するドメイン名でHosted Zoneを作成します。 作成されたときにできるNSレコードを控えておきます。 次の…

EKSクラスタを作成してpodをたてるまで

概要 EKSクラスタを作成してpodをつくるまでのメモです。 手順 手順です。 EKSクラスタの作成 こんなかんじ podはひとつだけ 作成に10分くらいかかる $ eksctl create cluster --name test --nodes 1 kubectlで使えるようにconfigに追記させる。 $ eksctl ut…

別のstateファイルの値を参照する

概要 リモートステートをつかって別のstateファイルの値を参照して見たいと思います。 これによって stateをまたいでいろいろできたりするのでstateの分離等もしやすくなるかもしれないしならないかもしれない。 EC2インスタンスを作成するstateと、それにEI…

tfstateファイルをS3バケットで管理する

概要 TerraformのtfstateファイルをS3バケットで管理してみます。 仕事でチームでやるときはだいたいこの設定でやると思う。 こんなかんじ こんなかんじで設定してあげます。 terraform { backend "s3" { bucket = "mybucket" key = "terraform.tfstate" reg…

Beanstalkで作成されたバケットができないときの対処法

AWS

概要 Elastic Beanstalkで作成されたS3バケットを削除しようとしたときに以下のようなエラーがでた。 botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the DeleteBucket operation: Access Denied 権限は足りてるはずなの…

TerraformでS3バケットを作成する(ランダムな数値列をサフィックスにして)

概要 Terraformでランダムな数値列をサフィックスにして、バケットの名前がかぶらないようにしつつ、バケットを作成してみます。 前提 terraformのバージョン等はこんなかんじ。 $ terraform --version Terraform v0.12.18 + provider.aws v2.43.0 + provide…

TerraformでAWSのアカウント番号を利用する

概要 TerraformでAWSアカウント番号(アカウントID)を取得してみます。 前提 Terraformのバージョンはこんなかんじ。 $ terraform --version Terraform v0.12.18 + provider.aws v2.43.0 こんなかんじ みんなだいすきcaller_identityです。 data "aws_caller_…

Terraformでアカウントエイリアスを利用する

概要 TerraformでAWSのアカウントエイリアスを利用してみます。 前提 前提はこう $ terraform --version Terraform v0.12.18 + provider.aws v2.43.0 こんなかんじ data "aws_iam_account_alias" "wawawa" {} output "account_alias" { value = "data.aws_ia…