IAMグループ"handson-cli-s3-MaintGroup"に対して、カスタマ管理ポリシー"handson-cli-s3-versioning-S3BucketWriteVersionPolicy"をアタッチします。
作業に必要なパラメータを変数に格納をします。
1. IAMグループ名
IAMグループ名を指定します。
変数の設定: IAM_GROUP_NAME='handson-cli-s3-MaintGroup'
変数の設定:
IAM_GROUP_NAME='handson-cli-s3-MaintGroup'
2. IAMポリシー名
IAMポリシー名を指定します。
変数の設定: IAM_POLICY_NAME='handson-cli-s3-versioning-S3BucketWriteVersionPolicy'
IAM_POLICY_NAME='handson-cli-s3-versioning-S3BucketWriteVersionPolicy'
3. IAMポリシーパス
IAMポリシーパスを指定します。
変数の設定: IAM_POLICY_PATH='/handson-cli/'
IAM_POLICY_PATH='/handson-cli/'
各変数に正しいパラメータ値が格納されていることを確認します。
変数の確認: cat << END # 1. IAM_GROUP_NAME:"handson-cli-s3-MaintGroup" IAM_GROUP_NAME:"${IAM_GROUP_NAME}" # 2. IAM_POLICY_NAME:"handson-cli-s3-versioning-S3BucketWriteVersionPolicy" IAM_POLICY_NAME:"${IAM_POLICY_NAME}" END
変数の確認:
cat << END # 1. IAM_GROUP_NAME:"handson-cli-s3-MaintGroup" IAM_GROUP_NAME:"${IAM_GROUP_NAME}" # 2. IAM_POLICY_NAME:"handson-cli-s3-versioning-S3BucketWriteVersionPolicy" IAM_POLICY_NAME:"${IAM_POLICY_NAME}" END
IAMポリシーのARNを取得します。
変数の設定: IAM_POLICY_ARN=$( \ aws iam list-policies \ --scope Local \ --path-prefix "${IAM_POLICY_PATH}" \ --max-items 1000 \ --query "Policies[?PolicyName==\`${IAM_POLICY_NAME}\`].Arn" \ --output text \ ) \ && echo "${IAM_POLICY_ARN}" 結果(例): arn:aws:iam::XXXXXXXXXXXX:policy/handson-cli-s3-versioning-S3BucketWriteVersionPolicy
IAM_POLICY_ARN=$( \ aws iam list-policies \ --scope Local \ --path-prefix "${IAM_POLICY_PATH}" \ --max-items 1000 \ --query "Policies[?PolicyName==\`${IAM_POLICY_NAME}\`].Arn" \ --output text \ ) \ && echo "${IAM_POLICY_ARN}"
結果(例):
arn:aws:iam::XXXXXXXXXXXX:policy/handson-cli-s3-versioning-S3BucketWriteVersionPolicy
IAMグループにIAMポリシーをアタッチします。
変数の確認: cat << END # IAM_GROUP_NAME:"handson-cli-s3-MaintGroup" IAM_GROUP_NAME="${IAM_GROUP_NAME}" # IAM_POLICY_ARN:"arn:aws:iam::XXXXXXXXXXXX:policy/handson-cli/handson-cli-s3-versioning-S3BucketWriteVersionPolicy" IAM_POLICY_ARN="${IAM_POLICY_ARN}" END コマンド: aws iam attach-group-policy \ --group-name ${IAM_GROUP_NAME} \ --policy-arn ${IAM_POLICY_ARN} 結果(例): (出力なし)
cat << END # IAM_GROUP_NAME:"handson-cli-s3-MaintGroup" IAM_GROUP_NAME="${IAM_GROUP_NAME}" # IAM_POLICY_ARN:"arn:aws:iam::XXXXXXXXXXXX:policy/handson-cli/handson-cli-s3-versioning-S3BucketWriteVersionPolicy" IAM_POLICY_ARN="${IAM_POLICY_ARN}" END
コマンド:
aws iam attach-group-policy \ --group-name ${IAM_GROUP_NAME} \ --policy-arn ${IAM_POLICY_ARN}
(出力なし)
「IAMグループ"handson-cli-s3-MaintGroup"にカスタマ管理ポリシー"handson-cli-s3-versioning-S3BucketWriteVersionPolicy"がアタッチされている。」ことを確認します。
コマンド: aws iam list-attached-group-policies \ --group-name ${IAM_GROUP_NAME} \ --query "AttachedPolicies[?PolicyName == \`${IAM_POLICY_NAME}\`].PolicyName" \ --output text 結果(例): handson-cli-s3-versioning-S3BucketWriteVersionPolicy
aws iam list-attached-group-policies \ --group-name ${IAM_GROUP_NAME} \ --query "AttachedPolicies[?PolicyName == \`${IAM_POLICY_NAME}\`].PolicyName" \ --output text
handson-cli-s3-versioning-S3BucketWriteVersionPolicy