- 1. 既存の IAM ロールが削除されると、該当ロール名がプリンシパル ID に変換される
- 2. AWS SecretMangerを即時削除する
- 3. CloudTrailに記録されるマネジメントコンソールサインインのログはバージニア北部リージョンに記録されるとは限らない
- 4. VPC作成の上限を引き上げる
- 5. AWS Security Hubの結果をさらしてみる
- 6. ELB ログを検索する
- 7. AWSアカウントセキュリティ入門
- 8. AWS超初心者によるAWS費用試算
- 9. 【小ネタ】cloudadminのパスワードを変更する(VMware Cloud on AWS)
- 10. Redshift SpectrumでParquetのMIN/MAXプルーニングの効果を確認する
- 11. AWS Copilot で Elixir + Phoenix Framework の Web サイトを公開する
- 12. stepfunctionsでのDynamoDBを使用した多重実行制御
- 13. SpringBootアプリケーションをCodePipelineを用いてBeanstalkに自動デプロイ
- 14. EC2にLaravel+MySQL環境構築
- 15. 既存のECSクラスタでもContainer Insightsが使いたい
- 16. 【AWS】HomebrewにAWSCLIをインストールするには?
- 17. AWS SSO で委任された管理者アカウントを設定しよう
- 18. Unity:S3から複数の動画を選択しストリーミング再生する方法
- 19. S3のファイルをCLIで一括ダウンロード ( + IAM最小権限の設定)
- 20. 【AWS】AWS認証情報の設定方法/保管場所/優先順位を理解する。
既存の IAM ロールが削除されると、該当ロール名がプリンシパル ID に変換される
ある日突然 Terraform 差分が起きた件について、調査して分かったことをメモ
Assume Role 設定で指定していた IAM ロールの ARN が、見覚えのない文字列(`AROA`から始まる)に変更されていて、Terraform 適用時に差分が起きた
“`tf
Principal = {
~ AWS = “AROA…” -> “arn:aws:iam::[アカウント ID]:[ロール名]”
}
“`この変更を行った覚えはなくて、調査した結果、該当 IAM ロールが削除されたことによって、ARN からプリンシパルID に変換されたことが原因だった
どういうことかと言うと、
– 前提として、AWS の仕様で、意図しない IAM ロール利用を防ぐために、IAM ロールは裏側でユニーク ID で管理されている
– [普段は AWS 側で必要な時に ID 変換されるため目にする機会がないが、arn が指す IAM ロールが削除されると、この ID がコンソール表示される](https://docs.aws.amazon.com/ja_jp/IAM/latest/U
AWS SecretMangerを即時削除する
– 数日間残るので削除して同じ名前で作り直すことができない。
– 即時削除をする必要があり、CLIからのみできるみたい“`
aws secretsmanager delete-secret –secret-id secret-vault –force-delete-without-recovery
“`
CloudTrailに記録されるマネジメントコンソールサインインのログはバージニア北部リージョンに記録されるとは限らない
いつもお世話になっているClassmethodさんのブログを参考に設定して設定してみました。
https://dev.classmethod.jp/articles/aws-management-console-sign-in-notice/
しかし**通知が来ない**???
調べてみると、必ずバージニア北部リージョンとは限らないようです。
公式ドキュメントはこちらhttps://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_sign-in.html
> ユーザーがコンソールに直接サインインすると、選択されたサービスのコンソールがリージョンをサポートするかどうかによって、グローバルまたはリージョンのサインインエンドポイントにリダイレクトされます。
ということで
# 試してみた
:::note
Chromeのシークレットモードで試しました。
また、エイリアス設定はしていないので`alias`部分には`12桁のアカウントID`を指定しました。
:::* URL欄に **https://
VPC作成の上限を引き上げる
VPCはリージョンにつき、5つまでの制限がある
上限を解放するために申請を行ったときの自分用メモ—
# IAM
– 権限付与“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: “servicequotas:*”,
“Resource”: “*”
}
]
}
“`# 申請
– [Service Quotasのダッシューボード](https://ap-northeast-1.console.aws.amazon.com/servicequotas/home/)にアクセスし、「AWSのサービス」を選択
![0067.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242897/ebe607a
AWS Security Hubの結果をさらしてみる
[AWS Security Hub](https://aws.amazon.com/jp/security-hub/)とは
> **セキュリティ体制の管理と改善**
> AWS Security Hub では、AWS のセキュリティステータスを一括表示できます。セキュリティチェックを自動化し、セキュリティ検出結果を管理し、AWS 環境全体にわたってセキュリティで最優先すべき問題を洗い出します。2022/5/13現在、以下のセキュリティ基準が用意されています。
* CIS AWS Foundations Benchmark
* AWS 基礎セキュリティのベストプラクティス
* PCI DSS個人で利用しているAWSアカウントにSecurity Hubを有効にしましたので、「AWS 基礎セキュリティのベストプラクティス」のスコアをさらしてみます。
どーん
![ap-northeast-1.console.aws.amazon.com_securityhub_home_region=ap-northeast-1(1280×720).png](https://qiita-imag
ELB ログを検索する
簡単にメモを残しておく
– [ドキュメント](https://docs.aws.amazon.com/ja_jp/athena/latest/ug/application-load-balancer-logs.html)の通り、Athena 上にテーブルを作成
– 必要に応じて、検索クエリを実行
– [ログ項目](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-log-entry-format)は要確認
– 今回は、 `特定 IP からの、特定 URL に対するレスポンスタイム` を見たかったので ↓“`sql
SELECT
client_ip,
elb_status_code,
target_status_code,
request_verb,
request_url,
time,
request_creation_time,
parse_datetime
AWSアカウントセキュリティ入門
# はじめに
AWSのアカウントセキュリティ系のサービスは年々利便性が向上しており、AWSユーザや企業でも今後利用が拡大していくものと思われます。
複数アカウント利用の場合に有用な、下記のサービスについて、どのような役割や機能を持っているか学習したため、備忘録としてまとめました。
※ ハンズオン的な内容は含んでません。
– **SecurityHub**
– **CloudFormation StackSets**
– **ControlTower**
– **(おまけ)AWSセキュリティのベストプラクティスと具体的な実装**# SecurityHub
### 機能
– AWSのセキュリティ系サービスは現在20以上と非常に多くあり便利な反面、バラバラに各サービスによる検知状況を確認するのは大変。(**運用の複雑化**)
– Security Hubにより**各サービスを一括してモニタリング**する機能が提供されており、上記問題の解決手段となる。
– Security Hubでは、以下のようなセキュリティサービスが統合されており一括可視化できる。
– Config
– G
AWS超初心者によるAWS費用試算
# はじめに
AWSを利用するにあたり、予算確保等の理由から「(上振れしない様に)それなりに精緻な」形で「年/月単位」で発生する費用の試算を求められることがあるかと思います。
今回は、上記要望のもと、AWS超初心者が行ったAWS費用の試算方法について、まとめてみます。# AWS費用試算の道のり
## 困りポイント
AWS費用試算はどうやれば?ということで調べていくと、[AWS Pricing Calculator](https://calculator.aws/)を利用しましょうという話が出てくるかと思います。
試算ページの項目を埋めていけば想定費用が結果として得られる訳ですが、AWSサービスに依っては、試算に必要な値をいきなり埋めていくのはハードルが高い(筆者的には)場合があります。例:ELBの試算ページ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609667/62f84191-5a3b-a96e-8933-65dba93ceb37.png)## まずは費用発生条件を
【小ネタ】cloudadminのパスワードを変更する(VMware Cloud on AWS)
# はじめに
「VMware Cloud on AWS (VMC) の cloudadmin のパスワードは変更可能ですか?」とご質問を頂くことがあるので実際に試してみました。# 目次
1. [cloudadminとは](#cloudadminとは)
1. [パスワードの変更](#パスワードの変更)
1. [パスワードを忘れてしまった場合](#パスワードを忘れてしまった場合)
1. [参考文献](#参考文献)
# cloudadminとは
VMC では SDDC をデプロイすると cloudadmin@vmc.local という SDDC で管理・運用をする為に必要な権限を持ったユーザーが作成されます。尚、VMC ではホストの管理やその他のタスクは VMware が行うため、クラウドの管理者に必要な権限はオンプレミス データセンターの管理者よりも少なくなります。
最初に割り当てられる cloudadmin のパスワードは VMC コンソールから確認が可能です。
Redshift SpectrumでParquetのMIN/MAXプルーニングの効果を確認する
# Redshift SpectrumでのParquetのMIN/MAXプルーニング
Redshift SpectrumではS3上に置かれたファイルをクエリすることができる機能です。
サポートしているファイルフォーマットはいくつかありますが、有名なフォーマットとしてParquetがあります。
Parquetではカラムごとに、いくつかのグループでまとまって管理が行われ、そのグループごとに最小値、最大値の統計情報を持っています。Redshift Spectrumではその統計情報を確認することで、不要なグループを読み飛ばすMIN/MAXプルーニングを行うことができます。# データの準備
Redshiftに格納されているTPC-Hのlineitem表からS3にParquetのデータを2種類作成します。
– lineitem表のデータをそのままS3に出力するクエリ
“`
CREATE EXTERNAL TABLE lineitem_spectrum
STORED AS parquet
LOCATION ‘s3://my-bucket/lineitem-spectrum/’
AWS Copilot で Elixir + Phoenix Framework の Web サイトを公開する
## はじめに
[Phoenix Framework][pf] で作った Web サイトをとりあえず [AWS] 上で公開したい!
でも、 EC2 でサーバーを立てたり SSH 接続して環境構築とかしたくない!
ちょっと動かしたいだけなので [Ansible] まで使いたくない!
AWS コンソールから VPC の設定とかもしたくない!
かといって [CloudFormation][cf] も [Terraform][tf] も面倒臭い!
という人向けの記事です
AWS Copilot を使えば何も考えずに Phoenix が AWS 上で動きます
※本番環境用となるとクラスタリングだったり、 mix release したりとかあるので、
あくまでも簡単に立ち上げるだけです※ある程度 AWS や Docker の知識があることを前提としています
AWS Copilot 公式はこちら
https://aws.github.io/copilot-cli/ja/
本記事で実装したコードはこちら
https://github.com/RyoWakabayashi/p
stepfunctionsでのDynamoDBを使用した多重実行制御
# はじめに
AWSのEventBridgeを使用して定期実行などを行う際、最低1回の実行が保証されている([参照](https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-troubleshooting.html))。
しかし、処理によっては多重実行が望まれないものもある。
そこで今回は、DynamoDBを用いて、stepfunctionsの多重実行を制御する方法を考えた。# 実装
今回は、日次で1回のみ行う処理をイメージした。ステートマシンの構造は以下の通りである。– DynamoDBに実行日を表す値(yyyymmdd)を入れる
– 上の処理が正常に動作したらメインの処理が走る、エラーが起こったらステートマシンを終了する## DynamoDBのテーブル作成
今回はtestというテーブル名で、パーティションキーをyyyymmddとするテーブルを作成した。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
SpringBootアプリケーションをCodePipelineを用いてBeanstalkに自動デプロイ
## 概要
[SpringBootアプリケーションをCodePipelineを用いてEC2インスタンスに自動デプロイ](https://qiita.com/tatsuakimitani/items/86258d80326ddc8091d9)
があったので、
[CodePipelineでSpringBoot on BeanstalkのCD/CIパイプラインを構築する](
https://springhack.com/codebuild-codedeploy-codepiplne%e3%81%a7springboot%e3%81%aecd-ci%e3%83%91%e3%82%a4%e3%83%97%e3%83%a9%e3%82%a4%e3%83%b3%e3%82%92%e6%a7%8b%e7%af%89%e3%81%99%e3%82%8b/)に倣ってBeanstalkに自動デプロイしました。## 手順1 Githubにソースをコミットしておく
[spring initializr](https://start.spring.io/)でspringbootプロジェクトを作成し、
ロ
EC2にLaravel+MySQL環境構築
# はじめに
EC2にLaravelをインストールし、
すでに作成済み(githubやcodecommitなど)のプロジェクトを展開する方法です。※バージョンなどは古い場合があります。
# 開発環境作成
#### 必要なものをインストール
ec2-userで作業します。**httpd** をインストール。
“`
$ sudo yum -y install httpd
“`**git** をインストール。
“`
$ sudo yum -y install git
“`**PHP** をインストール。(バージョンは任意)
“`
$ sudo amazon-linux-extras enable php7.4 -y
“`“`
$ sudo yum clean metadata
“`“`
$ sudo yum install php php-{pear,cgi,common,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}
“`問題なくインスト
既存のECSクラスタでもContainer Insightsが使いたい
CopilotでECSクラスタ生成した後、コンテナのタスクのメトリクスがみたいなぁと思ったときに対応方法わからんかったので、調べたことメモ。
# AWS ECSでCloudWatch Container Insightsを有効化
– Amazon ECS → アカウント設定に移動
– Container Insightsのチェックボックスをオン![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3442/7d06aa7a-bcff-56f0-0e96-55d11af5063a.png)
# 既存のECSクラスタに設定反映
新規クラスタ作成時は、Container Insightsの利用確認する設定があるみたいだけど、既存はコマンドからしかできないみたい。“`
aws ecs update-cluster-settings –cluster awesomeCluster –settings name=containerInsights,value=enabled
“`##
【AWS】HomebrewにAWSCLIをインストールするには?
# はじめに
実際の業務でHomebrewにAWSCLIを準備する機会がありました。
その準備をする際にやっていた手順について書きたいと思います。# AWSCLIとは?
AWSCLIとは、AWSサービスをコマンドラインで管理するためのツールになります。以下の各OSにインストールをして、使用することが可能です。
– Linux
– macOS
– Windows今回は、macOSのHomebrewにAWSCLIをインストールする手順についてご紹介します。
# 前提
| 項目 | 内容 |
| —- | —- |
| OS | macOS Monterey バージョン 12.3.1 |
| Homebrew | 3.4.10 |“`zsh:Homebrew
ma-sato@satsuton ~ % brew -v
Homebrew 3.4.10
Homebrew/homebrew-core (git revision e657c47b69a; last commit 2022-05-05)
Homebrew/homebrew-cask
AWS SSO で委任された管理者アカウントを設定しよう
## 何が嬉しいのか
AWS SSO で委任された管理者として組織のメンバーアカウントを設定できるようになりました ???https://aws.amazon.com/jp/about-aws/whats-new/2022/05/aws-sign-on-administer-delegated-member-account-in-organization/
AWS SSO は組織の管理アカウントに作成されます。そのためこれまではユーザーやグループの割り当てを操作する担当者に管理アカウントへのアクセス権限を与える必要がありました。このアップデートによりそれらの管理作業を組織のメンバーアカウントで実施できるようになります。管理アカウントへのアクセス権限を与える人数を最小限に抑えることが可能になり、最小特権の原則のベストプラクティスを実践しやすくなります。
## 留意点
委任された管理者アカウントでは以下のタスクを実行できません。* 管理アカウントのユーザーアクセスの管理
* 管理アカウントでプロビジョニングされたアクセス許可セットの管理
* AWS SSO の有効化、設定の削除
Unity:S3から複数の動画を選択しストリーミング再生する方法
# S3に置いた動画データを選択して配信する
S3に置いた複数の動画データから配信する動画を選択する方法についてまとめます。## 実装したもの
AWSのS3上の動画ファイルを動画を選択してストリーミング再生する実装に成功!
GWにやったAWSの勉強がさっそく生きて嬉しい。
動画は当院のInstagramとTikTok(@dr_teru_ortho)に載せている、当院スタッフが作成した動画。#protooutS3のファイルをCLIで一括ダウンロード ( + IAM最小権限の設定)# はじめに
S3ファイルを複数ダウンロード一括でダウンロードするには、コンソールでは対応できず、CLIでできるようなので、IAMユーザーを最小権限で実行する方法をまとめます。ついでにアップロードもできるようにします。
# 事前設定
S3バケット名`bucket-name`を作成し、バケット内に`/json/test.json`を作成# CLIのセットアップ設定
下記の記事通りに設定します。
https://blackbird-blog.com/setup-aws-cli
上記記事の内、一部設定を変えます。
– profile名は、`s3-download`
– IAMユーザー名を`s3-download`
– IAMユーザーの権限は、次項に記載しています。# IAMユーザー権限
## Action権限最小 + バケットを制限 + IP制限
S3のバケットの内`bucket-name`というバケット内のファイルのみを許可
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid【AWS】AWS認証情報の設定方法/保管場所/優先順位を理解する。
# まえがき
なんとなくで使ってきたAWS認証情報設定周りについてちゃんと理解する。# AWS CLIインストール
[ここ](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)からインストールする。
“`
% aws –version
aws-cli/2.0.50 Python/3.7.4 Darwin/20.6.0 exe/x86_64
“`# まずは aws configure で認証情報を設定してみる
とりあえず適当な値を入れてみよう。
“`
% aws configure
AWS Access Key ID [None]: AccessKeyId
AWS Secret Access Key [None]: SecretAccesskey
Default region name [None]: Tokyo
Default output format [None]: json
“`
上記コマンドを実行すると、下記2ファイルが生成される。
|