この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは。
コンサルティング部 繁松です。
今日はAWS ConfigでIAMユーザーのアクセスキーが作成から指定された日数を超えていないか確認し、指定の日数を超えている場合は自動修復アクションでアクセスキーを無効化してみました。
やってみた
設定をやっていきます。
作成から90日を超えたアクセスキーを無効化する設定で進めます。
IAMポリシーの作成
修復アクションに設定するロール用のポリシーの作成を行います。
IAM → ポリシー → ポリシーの作成
JSONを選択し下記の内容を入力し次のステップに進みます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"config:ListDiscoveredResources",
"iam:GetAccessKeyLastUsed",
"iam:UpdateAccessKey",
"iam:GetUser",
"iam:GetLoginProfile",
"iam:DeleteLoginProfile",
"iam:ListAccessKeys"
],
"Resource": "*"
}
]
}
名前を入力しポリシーを作成します。
IAMロールの作成
修復アクションに設定するロールの作成を行います。
IAM → ロール → ロールを作成
AWSのサービスを選択し、ユースケースにSystems Manager を選択します。
ポリシーで先程作成したポリシーを選択し次に進みます。
ロール名を入力しロールを作成します。
AWS Configルールの作成
AWS config → ルール → ルールを追加
ルールタイプの選択:AWSによって管理されるルールの追加
AWSマネージド型ルール:access-keys-rotatedを選択
パラメータ
maxAccessKeyAge:90(デフォルト)
※アクセスキーがmaxAccessKeyAgeを超えても更新されていない場合非準拠になります。
[ルールを追加]をクリックします。
修復アクションの作成
作成したルールを選択し、アクションから修復の管理を選択します。
自動修復にチェックを入れます。
修復アクションにAWSConfigRemediation-RevokeUnusedIAMUserCredentialsを選択します。
リソースIDパラメータでIAMResourceIdを選択し、パラメータを入力します。
AutomationAssumeRole:作成したロールのARN
MaxCredentialUsageAge:90(この日数を超えたアクセスキーを無効化します。)
保存します。
動作確認
90日で設定した箇所を3日に変更しアクセスキーが無効化されるかを確認してみます。
こちらのアクセスキーで確認します。
上は作成から6日経過、下は作成から1日経過のアクセスキーです。
修復アクションとルールのパラメータを3日に変更しました。
再評価します。
対象のリソースが非準拠になり3日を超えたアクセスキーが無効になりました。
さいごに
簡単に指定日数を超えたアクセスキーを自動で無効化することができました。
なにかのお役に立つと幸いです。