[レポート] AWS主催のIAM技術セミナーに参加してきました
先日開催されました、AWS 主催の技術セミナーに参加してきましたのでレポートします。
今回のセミナーは「エンタープライズサポート契約を結んでいるパートナー企業限定のトレーニングセッション」ということで、特にサポートエンジニアを対象として 1/25 に開催されたものです。弊社からは、オペレーションチーム所属のわたし以外に 2名、またリモートで 2名の、計 5名で参加しました。
限定セッションということで、その内容を詳細には書けないのですが、雰囲気をお伝えできればと思います。
セッション内容
セッションは AWS のオフィスで開催されました。
- テーマ : IAM (AWS Identity and Access Management)
- 内容 : IAM技術セミナー (アドバンスド)
- 事前に参加者から寄せられた質問に対する Q&A
- ケース事例について
- 対象 : IAM Black Belt レベルの前提知識をもつサポートエンジニア
Q&A (一問一答)
- 登壇者 : 館岡氏
- AWSエコシステムソリューション部
セミナーに先立ち集められたアンケートから、IAM に関する疑問に答える形でセッションが進められました。
参加者が参加者(現役のサポートエンジニア)なので、どの質問も「ああ、確かに聞かれたことある!・聞かれそう!」というものが多かったです。それに対する解説やその後のディスカッションについても、ドキュメントを当たれば書いてある内容も複数組み合わせて関連付けながら解説いただいたり、最近追加されたサービス・機能についての情報のアップデートや、実運用ではどのようなナレッジがあるのかといった実践的な知識を多く得ることができました。
一例としてですが、AWS リソースへのアクセス制限は IAM ロールを使用するというのが前提としてある一方で、IAM ロールのインラインポリシーではサイズに上限があるという質問に対し、
- Paramater Store にクレデンシャル情報を格納して KMS で暗号化する
- 複数の IAM ロールを適宜付け替える(
AttachRolePolicy
)
... という解決策の提示と、参考として下記の記事の紹介がありました。
また館岡氏は「EC2 を使うなら Systems Manager」と繰り返し強調されていましたので、提示された資料と共にその旨ここにも記載しておきます。
いまは「AWS Systems Manager」と名前が変わりましたが、EC2 を使うなら Systems Manager ですよ!
また、一般に「RDS、RDS Aurora、Redshift の DB アカウントは IAM とは別管理」と認識されているが、実は IAM 連携できるようになっている …という話もして頂きました。RDS については弊社市田が記事を書いておりますが、Aurora や Redshift についても折を見てご紹介できればと思います。
- IAM認証によるRDS接続を試してみた | Developers.IO
- MySQL および Amazon Aurora に対する IAM データベース認証 - Amazon Relational Database Service
- IAM 認証を使用したデータベースユーザー認証情報の生成 - Amazon Redshift
ケース事例について
- 登壇者 : 池田氏、横田氏
- 技術支援本部エンタープライズサポート
二つ目のセッションでは、ケース事例ということで「事前に理解していることで無用なトラブルを避けられる」あるある話を紹介いただきました。
例えばこのようなケースです:
- マネジメントコンソールのアクセス元(接続元)を IP アドレスで制限したい
- IAM のポリシーにおいて、リソースレベルで指定できるアクションとできないアクションがある
- クロスアカウントで S3 にアクセスした場合の落とし穴
等々。
これらについては、弊社のメンバーが記事を書いております。どれも陥りやすい事象と思われますので、この機会にご一読ください。
- [AWS]マネージメントコンソールにIP制限をしつつ、一部利用できない機能も利用できるようにする | Developers.IO
- Amazon EC2 APIのサポートされていないリソースレベルのアクセス許可について | Developers.IO
- [S3]クロスアカウント時のアップロード時の権限エラー[はまった] | Developers.IO
分かりにくい事象として、 Service-Linked Roles についても紹介がありました。こちらについても下記記事をご参照頂ければと思います。
また、EC2 インスタンスへのアクセス制御を Tag で指定する方法についてのナレッジを共有いただきました。これは、IAM ポリシー条件(Condition:
)にてタグ情報(ec2:ResourceTag/UserName
)と変数 aws:username
を比較するようにすることで、「UserName」というタグに設定されている IAM ユーザに対してのポリシーを設定できるというものです。詳細は下記のドキュメントをご参照下さい。
- How do I create an IAM policy to control access to Amazon EC2 resources based on tags?
- ボリュームをアタッチおよびデタッチする - AWS CLI または AWS SDK で使用するサンプルポリシー - Amazon Elastic Compute Cloud
なお、権限不足でアクセスが出来ないといった問合せの際には、切り分けのためになるべく多くの情報が必要であり、再現できる場合には下記のようなことを試して欲しい(あるいは各社サポートで対応して欲しい)、という話もありました。今後のサポートに生かしていきたいと思います。
- ブラウザの開発者ツールでログを採取する
- AWS CLIで
--debug
オプションを付ける - CloudTrail を有効にして API コールログを記録する
まとめ
今回のセミナーは参加各社へは資料が配付されましたので、弊社オペレーションチーム内でも部内勉強会を開いて共有しました。
弊社は AWS とエンタープライズサポート契約を結んでおり、顧客対応において AWS と連携して行っているところではありますが、こういった機会を通じてメンバーのスキルアップと顧客満足度の向上につとめてまいりたいと思います。
なお、このような技術セミナーに参加してみたい! というかたを弊社は常に歓迎しております!