サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
muramasa64.fprog.org
■ [AWS] AWS CLIで任意のタグが設定されていないインスタンスの一覧を取る 例えば、Nameタグが設定されていないEC2インスタンスのInstanceId一覧を取るには、下記のようにする。 aws ec2 describe-instances --query 'Reservations[].Instances[?!contains(Tags[].Key, `Name`)].InstanceId|[]' これで、AWS Management Consoleの「タグ付けなし」と同じ結果が得られる。
■ [AWS][Ruby] AWS SDK for Ruby v2でのcredentialsの扱い AWS SDK for Rubyで新標準となったCredentials管理方法を使ってみるでは、aws-sdk-v1での、Shared Credentialsの使い方について説明した。v2では、この辺りも大きく変わっているようだったので、どうなっているのか確認してみた。 v2のドキュメントによると、Awsモジュールに、それぞれクラスが定義されている。 Aws::Credentials Aws::AssumeRoleCredentials Aws::InstanceProfileCredentials Aws::SharedCredentials Aws::Credentialsをベースに、ソース毎にクラスが定義されている。 使い方 今どきは、EC2であればIAM Roleを、手元の環境ではS
■ [AWS] WEB+DB PRESS vol.85にCloudFormationの記事を書いた 2015年2月24日(火)に発売される、WEB+DB PRESS vol.85(Gihyo DP, Amazon.co.jp)の特集記事「実践 AWS自動化」に、CloudFormationについて、@y015i(y13i)と共に書かせてもらいました。 この特集記事は、@sgwr_dts(winebarrel)さんが作成されたAWSコード化ツール群、Codenize.toolsや、AWSのサービス、CloudFormation、OpsWorksについて紹介しています。 コードによるAWSの自動化、Codenize.toolsについては、@sgwr_dtsさんが、OpsWorksについては、@sawanoboly(sawanoboly)さんが書かれています。 第1章「コードによるAWSの自動化
■ [AWS] AWS CLI 1.6.0にWaitersが追加された re:Invent 2014に合わせてなのかどうかは分かりませんが、AWS CLI 1.6.0がリリースされた。リリースノートによると、Waitersが追加されたようだ。 AWSのAPIのうちの幾つかは、APIのリクエストをした作業が非同期になっており、処理が完了しなくてもAPIが完了するものがある。EC2の起動や停止などがそれで、StartInstances APIの実行が完了しても、EC2自体の起動は完了していない状態になる。EC2の起動が完了したかどうかは、DescribeInstences APIを呼んで、EC2のStateを確認しなければならない。 Waitersは、その状態チェックを自動的に行なって、処理が完了するまで待つというものだ。 では、早速試してみよう。まずは、EC2の状態を確認する。 % aws
■ [Linux] SSHの認証でワンタイムパスワードを使う(ログインするたびに何度も入力するのが嫌な人への対策編) SSHの認証でワンタイムパスワードを使う(導入編)では、Google AuthenticatorのPAMモジュールを使って、SSHする際にワンタイムパスワードを使うというのを実践した。 また、GSSAPIとGoogle Authenticatorを連動させるでは、SSHする際に、Kerberos認証をした結果をGSSAPIを使ってSSOするようにした。 これによって、ワンタイムパスワードを入力するだけでログインできるようになった。しかし、SSHするたびにワンタイムパスワードを入力するのが面倒である、というフィードバックがあった。例えば、EvernoteやGoogle Appsなどのサービスは、必ずしもワンタイムパスワードを毎回入力する必要がなく、認証情報を記録しておき、一定
■ [Linux] sshでGSSAPIを使ったシングルサインオン(SSO) Linuxで、Active Direcotryを使った認証ができるようになったので、次はsshのシングルサインオン(SSO)をやってみた。 認証基盤の構成は、以前のエントリ RHEL7をActive Directory on Windows Server 2012 R2でユーザ認証させる (2)を参照のこと。 サーバの設定 sshdでGSSAPIを使うには、GSSAPIAuthenticationをyesにする。デフォルトでは有効になっているはず。 また、AuthenticationMethodsに、gssapi-keyex, gssapi-with-micを追加する。これまでの設定で、keyboard-interactiveのみになっていたので、追加すると、下記のようになる。 AuthenticationMet
■ [AWS] AWS CLIでセキュリティグループのルールをコピーする いつも、セキュリティグループのルールをコピーしたいと思っているのだが、今のAWS CLIであれば、以前にやったRDSのパラメータグループをコピーしたのと同じ方法でできるのではないかと思ったので、やってみた。 $ aws ec2 describe-security-groups \ --filters 'Name=group-name,Values=src-sg' \ --query 'SecurityGroups[].IpPermissions[]' \ | tr -d '\d' \ | xargs -I{} -- aws ec2 authorize-security-group-ingress --group-id sg-deadbeaf --ip-permissions '{}' A client error (
■ [Linux] SSHの認証でワンタイムパスワードを使う(導入編) 最近、様々なサービスでRFC 4226とRFC 6238で定義されているワンタイムパスワードが利用されるようになってきている。このワンタイムパスワードを、SSHでLinuxにログインする際に使えるということを知ったので、試したみた。対応しているOpenSSHは、6.2以降となる。 参考 OpenSSH 6.2 adds support for two-factor authentication なお、今回はAmazon Linux 2014.03を対象とする。 Google Authenticatorをインストールする Google Authenticatorは、PAMモジュールとして使えるものが提供されているので、そちらをインストールする。Amazon Linuxの場合は、なんとパッケージが用意されているので、yum
■ [Linux][Windows] RHEL7をActive Directory on Windows Server 2012 R2でユーザ認証させる (2) 2014-09-29追記: RHEL7をActive Directory on Windows Server 2012 R2でユーザ認証させる (5)にて、samba-clientの代わりに、realmdを使ってドメインに参加する方法を追記。realmdを使ったほうが楽なのでオススメ。 前回示した構成での構築を進めていく。対象となる環境はAWSで、VPCを用意して、そこにActive Directory Domain Serviceを構成する。 ちなみに、VPC上にActive Directoryを構築する方法については、Active Directory on AWSが大変参考になる。 構築したADの情報 今回は、下記のような構成
■ [AWS] Amazon S3でアクセス指定かつ期限付きURLの生成 以前に、S3でのアクセス制限と時限式のURLを生成する方法を書いた。 AWS SDK for RubyでS3の期間限定のURLを生成する S3のバケットポリシーでIPアドレスによるアクセス制限 これらを同時に利用することができないかどうか試してみた。 まずは、バケットポリシーで制限をかけた状態で、Pre-signed URLを使って実現する時限式のURLを生成してみた。しかしこれはうまく行かず、アクセス制限が効かない状態になってしまっていた。どうやら、Pre-signed URLを生成した場合には、Pre-signed URLを生成したアカウントのポリシーで、バケットポリシーを上書きしてしまうらしい。 そのため、Pre-signed URLを使用してアクセス制限を行う場合には、IAMでアカウントを作成して、そのアカウ
■ [AWS] Amazon S3に別アカウントから書き込みを許可する場合の設定 あるバケットに、別のアカウントから読み書きできるようにバケットポリシーを定義したい。普通に考えると、下記のような感じになるだろう。 { "Version": "2012-10-17", "Id": "Policy1406782030997", "Statement": [ { "Sid": "Stmt1406782027567", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListBucket", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-acl-test", "arn:aws:s3:::s3-acl-test/*" ], "Principal": { "
■ [Apache] 特定のディレクトリだけ認証を外す Apacheで、サイト全体をBASIC認証などでアクセス制限を行っているときに、一部のディレクトリ以下のみ、認証の対象外にしたい場合には、以下のようにすれば良い。 たとえば、/var/www/default/html以下すべてがBASIC認証によって制限されていて、/var/www/default/html/noauth以下は認証なしにしたいような場合は、下記のように設定すればよい。 # 全体に対してBASIC認証の設定 <Directory /var/www/default/html> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all AuthType Basic AuthName welcome AuthUserFile /var/w
■ [AWS] EBSブートのインスタンスのリージョン変更手順 ESBブートのインスタンスのリージョンを変更してみた。 ツールのインストールと設定 下記のツールを移行対象となるインスタンスにインストールする(Amazon Linux AMIの場合は元々入っているか、yumで入れられる)。 aws-apitools-ec2 aws-amitools-ec2 ec2-utils ちなみに、AMI Toolsは、Rubyとrsyncが入ってないと動かない。 イメージファイルを作成 ec2-bundle-volコマンドを使って、イメージファイルを作成する。特に指定しない場合、/tmpに作成されるので、ディスクに十分な空きがあるか注意しておく。 # ec2-bundle-vol -k ~/.ec2/ec2.key -c ~/.ec2/ec2.crt -u YOUR_ACCOUNT_NUMBER --
■ [AWS][Ruby] AWS SDK for RubyでS3の期間限定のURLを生成する 先日参加したZmandaクラウドバックアップセミナーでの玉川憲さんの発表で、S3で期間限定のURLを生成することができるということを知った。これはAWS Manegement Consoleでは簡単に実現できないのでRubyでやってみた。 require 'aws-sdk' AWS.config(YAML.load(File.read('config.yml'))) o = AWS::S3.new.buckets['your-bucket-name'].objects['object-name'] puts o.url_for(:read, :expires => 60*60*24*31) これで、下記のようなURLが生成された。このURLは、一ヶ月間だけ有効のものになる。 https://ru
■ [AWS] IAMアカウントでX.509証明書が使えるようにする IAMアカウントが必要なときは、大抵の場合アクセスキーIDで事足りることが多い。しかし、EC2関連のCLIを実行するときにX.509証明書が必要になってくる。 アクセスキーIDは自動的に作成され、AWS Management Consoleで管理できるのだが、X.509証明書は作成されない。IAMのドキュメントによると、次のようにある。 IAM doesn't have an API action to create signing certificates, so you must use a third-party tool such as OpenSSL to create the certificate first. We recommend you create an RSA key that is eithe
■ [MySQL] 稼働中のMySQLに無停止でスレーブを追加する MySQLは簡単にレプリケーションすることができて便利。最初からレプリケーションを前提に構築するのは簡単にできる。しかし、実は運用が始まってしまって、なかなか停止できないMySQLにも、ほぼ無停止でスレーブサーバを追加できる。現在の設定状況にもよるが、再起動は必要になるかも。 マスターでバイナリログを出力するようにする my.cnfで、binlog_do_dbの設定をする。レプリケーション対象となるデータベースを指定する。 [mysqld] binlog_do_db=your_db マスタのserver_idを設定する my.cnf で server_idの設定をする。レプリケーションする際に、個々のサーバを識別するのに使われる。任意のユニークな整数を指定すれば良い。 [mysqld] server_id=10 ここまでの
■ [AWS] ELBでHTTPリスナーだとWebSocketは使えない ELBを使っていて、WebSocketを使おうとしたときに、最初のハンドシェイクが上手くいかないという問題に遭遇した。 テストするために、node.jpのドキュメントから、http.ClientReqestにあるサンプルを使ってみた。ここのEvent: 'Upgrade'のところにあるサンプルコードを若干改造して下記のようなコードを用意した。 var http = require('http'); var net = require('net'); // Create an HTTP server var srv = http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('
■ [AWS] instance-storeのEC2をEBSブートのEC2に変換する 現在instance-storeで起動しているEC2のインスタンスを、EBSブートのEC2に変更することがあったので、その方法をまとめた。 ami-toolsのインストール 変換対象となるインスタンスに、ami-toolsをインストールする。 インスタンスのイメージファイルを作成する 現在動作しているEC2のバンドルボリュームを作成し、イメージに変換する。 # cd /tmp # ec2-bundle-vol -d /tmp -u YOUR_ACCOUNT_NUMBER # ec2-unbundle -m /tmp/image.manifest.xml -s /tmp/ -d /tmp/ EBSボリュームを用意する EBSインスタンス用のEBSボリュームを作成し、アタッチする。 # ec2-create-
■ [AWS] AWS Multi-Factor Authenticationを使う AWS Multi-Factor Authentication(AWS多要素認証/AWS MFA)とは、ユーザがAWSにアクセスをする際に、通常のAWSアカウントとパスワードに加えて、利用者が物理的に所有している認証デバイスから有効な6桁の数字(ワンタイムパスワード)を使って認証する機能のこと。 AWS MFAでは、時間ベースのワンタイムパスワードを生成できるデバイスが使える。これは、RFC 4226がベースになっていて、現在ドラフトとなっているTime-based One-time Password Algorithmが元にとなっている。 AWSのページでは、物理デバイスをgemaltoから購入できるとしているが、これと同等の機能を持つGoogle Authenticatorという、iOSとAndroi
■ Ruby開発会議つくば なんとなく場違いながら参加。色々と興味深い話が聞けたが、mswin32が無くなるかも、という話にやや驚いた。MinGW版を使え、という話なのだと思うけど、そうした場合、ASRはどうなるんだろう。 ■ Openingと基調講演だったやつ 基調講演は予定がキャンセルされて、Rails3の話に。Rails3はモジュール化が進んで、コアとライブラリの集合的な感じになったとのこと。 ■ 出張版toRuby勉強会 見るより参加する方が面白かろうということで、toRuby勉強会に参加。何も考えずに行ってみたのだが、dRubyはあんまり詳しくないのでかなり混乱した。初期のdRubyのコードは写経しきれなかったので、後で追試しよう。初版を買った咳さんの本も読み返してみよう。
■ GoogleのセキュアLDAPを使ってPingFederateによる認証をする セキュアLDAPとは、つい先日リリースされたばかりの、GoogleのCloud Identityまたは、G Suiteに対して、LDAPプロトコルを使って接続できるサービスのこと。 セキュア LDAP: LDAP ベースのアプリケーションやサービスを接続する Ping IdentityのIdP製品である、PingFederateから、セキュアLDAPが使えるか試してみる。 Cloud Identity Cloud Identityとは、GoogleのIDaaSで、企業向けモバイル管理(EMM)サービスのこと。 FreeとPremiumがあり、セキュアLDAPを使うには、Premiumが必要となる。 Freeは、G Suiteを使わないユーザーを管理するのに使うことができる。 GCPを使う開発者向けに、IDを
このページを最初にブックマークしてみませんか?
『muramasa64.fprog.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く