みなさんこんにちは、杉金です。
Organizations環境のIAM Access Analyzer有効化をAWS CLIでやってみようと思います。GUIで実施する場合は以下の記事をご覧下さい。
Access Analyzerはリージョン毎に設定する必要があります。リージョンで繰り返し設定する作業をAWS CLIを使って楽しちゃおうというものです。非Organizations環境の場合は以下の記事が参考になります。
1.Organizationsの「信頼されたアクセス」を編集する
管理アカウントでの作業です。信頼されたアクセスからAccessAnalyzerを有効化にします。AWS CloudShell もしくはローカルから AWS CLI を実行します。
私が確認した環境ではCloudShell(aws-cli/2.7.0 Python/3.9.11
)で実行しました。
有効化コマンド
aws organizations enable-aws-service-access --service-principal access-analyzer.amazonaws.com
確認コマンド
aws organizations list-aws-service-access-for-organization --output text | grep access-analyzer
# 有効化になっていると以下のように出力されます
#
# ENABLEDSERVICEPRINCIPALS [日付時間] access-analyzer.amazonaws.com
注)GUIからAccessAnalyzerを設定すると信頼されたアクセス編集も自動的に有効になります。
2.(必要な場合)委任管理者の設定
引き続き管理アカウントでの作業です。IAM Access Anlyzerの管理をメンバーアカウントに委任する場合にこのコマンドを実行します。委任させない場合はこの手順はスキップして下さい。
メンバーアカウントへの委任コマンド
aws organizations register-delegated-administrator --account-id ${委任管理者アカウントID} --service-principal access-analyzer.amazonaws.com
確認コマンド
aws organizations list-delegated-services-for-account --account-id ${委任管理者アカウントID} --output text | grep access-analyzer
# 以下のようにaccess-analyzerが「DELEGATEDSERVICES」となっている一行が出力されたらOKです。
#
# DELEGATEDSERVICES [日付時間] access-analyzer.amazonaws.com
3.各リージョンのIAM Access Anlyzerを有効化
委任管理者を指定してない場合は管理アカウント、委任管理者を指定している場合は委任先のメンバーアカウントからコマンドを実行します。コマンド冒頭にAccessAnalyzer名の変数を用意していますので、任意の名前を入力して実行下さい。
IAM Access Anlyzerを有効化コマンド
accessanalyzer_name=(AccessAnalyzerの名前)
aws --output text ec2 describe-regions --query "Regions[].[RegionName]" \
| while read region; do
echo "## enable iam access analyer in ${region}"
aws --region ${region} --output json \
accessanalyzer create-analyzer \
--analyzer-name ${accessanalyzer_name} \
--type ORGANIZATION
done
設定後に以下の確認コマンドから設定されたかを確認します。
確認コマンド
aws --output text ec2 describe-regions --query "Regions[].[RegionName]" \
| while read region; do
echo "## list analyers in ${region}"
aws --region ${region} --output table \
accessanalyzer list-analyzers \
--query "analyzers[].{NAME:name, STATUS:status}"
done
# 以下のように出力されます
#
### list analyers in eu-north-1
# ----------------------------------
# | ListAnalyzers |
# +---------------------+----------+
# | NAME | STATUS |
# +---------------------+----------+
# | access-analyzer-01 | ACTIVE |
# +---------------------+----------+
### list analyers in ap-south-1
# ----------------------------------
# | ListAnalyzers |
# +---------------------+----------+
# | NAME | STATUS |
# +---------------------+----------+
# | access-analyzer-01 | ACTIVE |
# +---------------------+----------+
### list analyers in eu-west-3
# ----------------------------------
# | ListAnalyzers |
# +---------------------+----------+
# | NAME | STATUS |
# +---------------------+----------+
# | access-analyzer-01 | ACTIVE |
# +---------------------+----------+
# (略)
4.おわりに
以上で有効化の設定は終わりです。後作業としては「通知の有効化」と「アーカイブ設定」がありますので参考情報を記載いたします。