#!/bin/bash
# Variables
ROLE_NAME="robot-artifact-iam-role"
POLICY_ARN="arn:aws:iam::aws:policy/AWSArtifactReadOnlyAccess"
KEY_PAIR_NAME="robot-artifact-key-pair"
# ステップ1: AWS Artifact用のIAMロールを作成
echo "IAMロールを作成中: $ROLE_NAME"
aws iam create-role \
--role-name "$ROLE_NAME" \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"Service": "artifact.amazonaws.com"
}
}
]
}' > create_role_output.json
# IAMロールが正常に作成されたか確認
if [ $? -eq 0 ]; then
echo "IAMロール $ROLE_NAME を正常に作成しました。"
else
echo "IAMロール $ROLE_NAME の作成に失敗しました。"
exit 1
fi
ステップ2: Artifactアクセス用のポリシーをロールにアタッチ
echo "AWSArtifactReadOnlyAccessポリシーをIAMロール $ROLE_NAME にアタッチ中"
aws iam attach-role-policy \
--role-name "$ROLE_NAME" \
--policy-arn "$POLICY_ARN"
if [ $? -eq 0 ]; then
echo "ポリシーを正常にアタッチしました。"
else
echo "ポリシーのアタッチに失敗しました。"
exit 1
fi
ステップ3: IAMアクセスキーを作成(プログラムアクセス用)
echo "IAMロール用のアクセスキーを作成中: $ROLE_NAME"
aws iam create-access-key \
--user-name "$ROLE_NAME" \
> access_keys_output.json
# キーが作成されたか確認
if [ $? -eq 0 ]; then
echo "アクセスキーを正常に作成しました。"
ACCESS_KEY_ID=$(jq -r '.AccessKey.AccessKeyId' access_keys_output.json)
SECRET_ACCESS_KEY=$(jq -r '.AccessKey.SecretAccessKey')
echo "アクセスキーID: $ACCESS_KEY_ID"
echo "シークレットアクセスキー: $SECRET_ACCESS_KEY"
else
echo "アクセスキーの作成に失敗しました。"
exit 1
fi
ステップ4: IAMロールとアクセスキー情報を表示
echo "IAMロール $ROLE_NAME をポリシー $POLICY_ARN と共に作成しました"
echo "アクセスキーID: $ACCESS_KEY_ID"
echo "シークレットアクセスキー: $SECRET_ACCESS_KEY"