かべぎわブログ

凄腕エンジニアのブログです

AWS

PythonでIAMグループとかIAMロールをかんたんに削除してくれるPythonをかいた

概要 PythonでIAMグループとかIAMロールをかんたんに削除してくれるPythonをかきました。 これと IAMグループをかんたんに削除してくれるPythonをかいた - かべぎわブログ これ IAMロールをかんたんに削除してくれるPythonを書いた - かべぎわブログ りょう…

IAMグループをかんたんに削除してくれるPythonをかいた

概要 IAMグループをかんたんに削除してくれるPythonをかきました。 グループを削除する際にはポリシーをデタッチしたりユーザをリムーブしたりいろいろしなければいけないですがこのスクリプトはそれらを解決します。 いろいろデタッチしたりしてからグルー…

IAMロールをかんたんに削除してくれるPythonを書いた

概要 IAMロールをかんたんに削除してくれるPythonをかきました。 ロールを削除する際にはポリシーをデタッチしたりインスタンスプロファイルをリムーブしたりいろいろしなければいけないですがこのスクリプトはそれらを解決します。 いろいろデタッチしたり…

自分のインスタンスIDを取得する方法まとめ

AWS

自分のインスタンスIDを取得する方法をまとめてみた。 メタデータを取得する cloud-utilを実行する cloudinitのディレクトリを参照する メタデータを取得する メタデータをcurlなりwgetなりで取得する。 curl http://169.254.169.254/latest/meta-data/insta…

AWSCLIで任意のタグのついたすべてのサービスのリソースを取得する

AWS

概要 AWSCLIを利用して任意のタグのついているすべてのサービス(すべてとは言っていない)のリソースを取得してみたいと思います。 このコマンドを利用することによりタグの--filterオプションが存在しないサービスのリソースも取得することができます。 コマ…

AWS CLI Builderはいいぞ

AWS

AWS CLI Builderはいいぞっていうおはなし。 awsclibuilder.com たとえばこんなかんじでいろいろやってくれるのです。 かんがえなくても埋めていくだけでコマンドができるのです。 メディア: この商品を含むブログを見る

PythonのBeautifulSoupでAWS What's Newの今月の一覧を取得する(強化版)

概要 BeautfulSoupをつかってAWS What's Newの今月の一覧を取得します。 本文も全部出してくれる強化版です。 スクリプト 実行してみる こんなかんじでずらーっと今月の情報が出力されます。 ARMv6 や新しい機械学習コネクタをサポートする AWS IoT Greengra…

Python(boto3)でAWSCLIとおなじかんじでprofileをわたしてあげる

概要 PythonとAWSCLIをいったりきたりしていて、profileのわたしかたに統一性がなくて(特にPythonは作った人によって全然違ったりして)めんどくさいなあと思っていたのでそれらを解決できるようなものを書いた。 Pythonでも--profileをわたして実行させるこ…

ワンライナーで特定のタグのついたインスタンスを起動/停止するAWSCLI

概要 AWSCLIのワンライナーで特定のタグのついたEC2インスタンスを起動/停止してみます。 インスタンスを起動する Nameタグがwawawaとなっているインスタンスを起動するワンライナー $ aws ec2 start-instances --instance-ids `aws ec2 describe-instances …

PythonのBeautifulSoupでAWS What's Newの今月の一覧を取得する

概要 PythonのBeautifulSoupを利用してAWSのWhat's Newの今月のトピックの一覧を取得してみます。 スクリプト こんなかんじで取得できます。 h3タグをとってきてループさせています。 実行してみる 実行してあげるとこんなかんじです。 $ python ./scraping.…

Python(boto3)で~/.aws/configをつかってのAssumeRoleする

概要 Python(boto3)で~/.aws/configの設定をもとにAssumeRoleしてみます。 スクリプト こんなかんじでできます。 前提 ~/.aws/configはこんなかんじとする。 [default] region = ap-northeast-1 [profile wawawa_test_role] role_arn = arn:aws:iam::1234567…

Python(boto3)でAssumeRoleする

概要 Python(boto3)でAssumeRoleしてみます。 スクリプト こんなかんじ。 実行してみる get_caller_identityしてみるとこんなかんじでAssumeRoleされていることがわかる。 $ python ./assume_role.py {'UserId': 'AROA57T5RBG4BKZFFOHVS:wawawa', 'Account':…

Python(boto3)でアクセスキーをローテーションする

概要 Python(boto3)でアクセスキーをローテーションさせてみます。 スクリプト スクリプトはこんなかんじ。 処理の流れ こんなかんじのことをやってます。 古い(現在の)アクセスキーで新しいアクセスキーを作成する .aws/credentialsに新しいアクセスキーの…

Python(boto3)で自分のアクセスキーを削除する

概要 Python(boto3)を利用して自分のアクセスキーを削除してみます。 スクリプト こんなかんじ。 実行するとこれを実行したユーザのAWSアクセスキーが削除されます。 おわりに 作業終わりにこれを実行するようにするとか、踏み台のログアウト時とかシャット…

KMSのAWSマネージド型キーのキーポリシーを確認する

AWS

概要 KMSのAWSマネージド型キーのキーポリシーを確認してみます。 AWSマネージド型キーはカスタマー管理型のキーとちがい、マネジメントコンソールからキーポリシーを確認することはできませんが、AWSCLIを利用することで確認することができます。 コマンド …

IAMグループにアタッチされているポリシーをツリー状に表示するPython

概要 IAMグループにアタッチされているポリシーをツリー状に表示するPythonを書いてみました。 スクリプト スクリプトはこんなかんじ。 動かしてみる こんなかんじで動作します。 $ python iam_group_tree.py admin_group └─ AdministratorAccess test_group…

PythonでAWSCLIを実行する

概要 Pythonのスクリプトの中でAWSCLIを実行してみます。 こんなかんじ こんなかんじで指定してあげることでAWSCLIを実行できます。 import subprocess subprocess.call(['aws', 's3', 'ls']) おわりに べんりだったりそうでなかったりしそう。 AWS認定資格…

インスタンスIDの一覧をPythonのリスト内包表記で取得する

概要 EC2インスタンスのIDの一覧をPythonのリスト内包表記をつかってかんたんに取得してみます。 前提 いずれも以下の様な感じで宣言してあるとする。 import boto3 ec2 = boto3.client('ec2') response = ec2.describe_instances() リスト内包表記の場合 こ…

特定のタグがついたロールにスイッチロールするIAMポリシー

AWS

概要 特定のタグがついたロールにスイッチロールするようなIAMポリシーです。 IAMポリシー かんたんな説明 このポリシーの場合だと、environmentタグにdevという値が設定されているロールにスイッチロールすることを許可しています。 こんなかんじにタグでス…

AnsibleでIAMポリシーを作成する

概要 Ansibleを利用してIAMポリシーを作成してみたいと思います。 playbook playbookとそれでつかうJSONはこんなかんじ。 JSONに記載したポリシーのとおりにIAMポリシーが作成されます。 実行結果確認 ポリシーができている。 $ aws iam list-policies --que…

AWSのEC2のLinuxにssh接続するときのユーザ名まとめ

AWS

AWSのEC2のLinuxにssh接続するときのユーザ名をまとめてみた。 まとめ こんなかんじ。 ディストリビューション ユーザ名 Amazon Linux ec2-user CentOS centos Debian admin または root Fedora ec2-user または fedora RHEL ec2-user または root SUSE ec2-…

CloudFormationで作ったインスタンスを削除したときにEBSがそのまま残ることがある

AWS

CloudFormationで作成したインスタンスにアタッチされていたEBSが削除されずにそのまま残ってしまうことがあります。 その対処法です。 template これの15行目みたいなかんじでDeleteOnTermination: Trueを設定してあげる。 おわりに わすれがち。 クラウド…

EFSを作成してEC2のCentOSでマウントする(EFSマウントヘルパーつかわない)

AWS

EFSを作成して、EC2インスタンスのCentOSでマウントしてみたいと思います。 (EFSマウントヘルパーはつかわないバージョンです。) 手順 手順 EFS用のセキュリティグループをつくる EFSを作成する CentOSにNFSクライアントをインストールする おわりに EFS用の…

CloudFormationでAn error occurred (InsufficientCapabilitiesException)が出たときの対処法

AWS

AWSCLIでCloudFormationのスタックを作成またはアップデートしようとしたときにこんなかんじのエラーがでた。 An error occurred (InsufficientCapabilitiesException) when calling the CreateStack operation: Requires capabilities : [CAPABILITY_NAMED_…

CloudFormationでDependencyViolationが出たときの対処法

AWS

CloudFormationでもう使わないスタックを削除しようとしたらこんなかんじのエラーがでて、セキュリティグループが削除できなかった。 resource sg-XXXXXXXX has a dependent object (Service: AmazonEC2; Status Code: 400; DependencyViolation; Request ID…

CodePipelineでGitHub上のコードをS3にデプロイする

AWS

概要 CodePipelineを利用してGitHub上のコードをS3にデプロイしてみたいと思います。 やりたいことはだいたい以下のようなかんじ。 手順 こんなかんじでできます。 マネジメントコンソールのCodePipelineから「パイプラインの作成」を選択します。 適当にパ…

CloudFormationでIAMロールアタッチしたEC2インスタンスを作成する

AWS

概要 CloudFormationを利用してIAMロールをアタッチした状態のEC2インスタンスを構築してみたいと思います。 template CloudFormationのテンプレートはこんなかんじ。 ちょっとした説明 マネジメントコンソールをポチポチしているとなにも意識しませんが、EC…

Cannot delete entity, must detach all policies firstの対処法

AWS

CloudFormation Stackを削除しようと思ったらこんなかんじのエラーがでてスタックが削除されなくなった。(DELETE_FAILEDになった) のでその対処法です。 Cannot delete entity, must detach all policies first. (Service: AmazonIdentityManagement; Status…

Ansibleでgoofysをインストールする

概要 AnsibleでgoofysをインストールするPlaybookを書いた。 playbook こんなかんじ。 おわりに epel-releaseとfuse,golangを分けたのはなんかそうしないとうまくいかなかったんだよね。 Ansible実践ガイド 第2版 (impress top gear)作者: 北山晋吾,塚本正隆…

CentOS7にgoofysをインストールしてS3をマウントしてみる

概要 CentOS7にS3をマウントできるツールであるgoofysをインストールして、S3バケットをマウントしてみたいと思います。 インストール手順 epelリポジトリを追加する $ sudo yum install epel-release fuseをインストールする $ sudo yum install fuse goを…