OpsCLI ® Advanced Compute Operation

(参考) CLIハンズオンの流れ

作成者:

OpsCLI

最終更新日:

2024-12-18

目的

参考として、OpsCLIハンズオンの一般的な流れを示します。

前提

作業環境条件

本作業は、以下の環境で行います。

AWSマネジメントコンソール環境条件

AWSマネジメントコンソール手順については、以下の環境で行います。

作業権限条件

本作業は、以下の「IAMユーザー」で行います。

作業権限条件: 対象IAMユーザー

  • handson-cli-signin-user

構成

本手順書で操作するAWSリソースの構成は以下の図のようになります。

../../_images/diagram-procedure_set-handson-sample.png

手順

警告

この手順においてスイッチロールに失敗する場合、マネジメントコンソールの右上に表示されているリージョンを「禁止されていないリージョン」に切り替えるか、IAMなどのグローバルサービスのダッシュボードに画面を切り替えてください。

(リージョンの表示があるサービスを開いている場合に、OrganizationsのSCP(サービスコントロールポリシー)などで禁止されているリージョンを選択しているときは、スイッチロールに失敗します。)

3.0. サインイン用IAMユーザーのサインイン

3.1. ハンズオンの事前作業

"handson-cli-ctrl-role"(ロール)にスイッチロールし、ハンズオンに必要なIAMポリシーをインスタンスプロファイル(IAMロール)にアタッチします。

権限制御用IAMロールへのスイッチロール

  • 右上のメニューをクリックします。

  • "ロールの切り替え"(ボタン)をクリックします。

    • "Switch Role"(画面)が表示されます。

  • 以下を入力します。

    Account ID

    AWS ID(12桁)を入力します。

    IAM role name

    "handson-cli-env/handson-cli-ctrl-role"を入力します。

  • "Switch Role"(ボタン)をクリックします。

    • 右上の表示が"handson-cli-env/handson-cloushell-user@XXXXXXXXXXXX"になっていることを確認します。

ハンズオンに必要な権限のアタッチ

ハンズオンに必要なIAMポリシーをインスタンスプロファイル(IAMロール)にアタッチします。

注釈

今回は以下のAWS管理IAMポリシーをアタッチします。

  • AWSCloudShellFullAccess

  • ReadOnlyAccess

コマンド:

ARRAY_IAM_POLICY_NAMES='AWSCloudShellFullAccess ReadOnlyAccess'

コマンド:

array_iam_policy_arns=$(
  echo $( \
    for i in $(echo "${ARRAY_IAM_POLICY_NAMES}");do
      aws iam list-policies \
        --query "Policies[?PolicyName == \`${i}\`].Arn" \
        --output text
    done \
  ) \
) \
  && echo "${array_iam_policy_arns}"

結果(例):

arn:aws:iam::aws:policy/AWSCloudShellFullAccess arn:aws:iam::aws:policy/ReadOnlyAccess

コマンド:

for i in $(echo "${array_iam_policy_arns}");do
  aws iam attach-role-policy \
    --role-name handson-cli-env-role \
    --policy-arn ${i}
done

結果(例):

(出力なし)

3.2. (参考) CloudShellハンズオンの実施

"handson-cli-env-role"(ロール)にスイッチロールし、ハンズオンを実施します。

ハンズオン環境用IAMロールへのスイッチロール

  • 右上のメニューをクリックします。

  • "ロールの切り替え"(ボタン)をクリックします。

    • "Switch Role"(画面)が表示されます。

  • 以下を入力します。

    Account ID

    AWS ID(12桁)を入力します。

    IAM role name

    "handson-cli-env/handson-cli-env-role"を入力します。

  • "Switch Role"(ボタン)をクリックします。

    • 右上の表示が"handson-cli-env/handson-cloushell-user@XXXXXXXXXXXX"になっていることを確認します。

ハンズオンの実施 (handson-cli-env-role)

"handson-cli-env-role"(ロール)にスイッチロールし、ハンズオンを実施します。

注釈

  • ハンズオンを実施します。

    コマンド:

    aws s3 ls
    

    結果(例):

    2022-07-19 22:47:06 cf-templates-94ho6sk5misho-ap-northeast-1
    

3.3. ハンズオンの事後作業

"handson-cli-ctrl-role"(ロール)にスイッチロールし、ハンズオンで使用したIAMポリシーをインスタンスプロファイル(IAMロール)からデタッチします。

権限制御用IAMロールへのスイッチロール

  • 右上のメニューをクリックします。

  • "ロールの切り替え"(ボタン)をクリックします。

    • "Switch Role"(画面)が表示されます。

  • 以下を入力します。

    Account ID

    AWS ID(12桁)を入力します。

    IAM role name

    "handson-cli-env/handson-cli-ctrl-role"を入力します。

  • "Switch Role"(ボタン)をクリックします。

    • 右上の表示が"handson-cli-env/handson-cloushell-user@XXXXXXXXXXXX"になっていることを確認します。

ハンズオンで使用した権限のデタッチ

"handson-cli-ctrl-role"(ロール)にスイッチロールし、"ハンズオン開始前"にアタッチしたIAMポリシーをインスタンスプロファイル(IAMロール)からデタッチします。

コマンド:

ARRAY_IAM_POLICY_NAMES='AWSCloudShellFullAccess ReadOnlyAccess'

コマンド:

array_iam_policy_arns=$(
  echo $( \
    for i in $(echo "${ARRAY_IAM_POLICY_NAMES}");do
      aws iam list-policies \
        --query "Policies[?PolicyName == \`${i}\`].Arn" \
        --output text
    done \
  ) \
) \
  && echo "${array_iam_policy_arns}"

結果(例):

arn:aws:iam::aws:policy/AWSCloudShellFullAccess arn:aws:iam::aws:policy/ReadOnlyAccess

コマンド:

for i in $(echo "${array_iam_policy_arns}");do
  aws iam detach-role-policy \
    --role-name handson-cli-env-role \
    --policy-arn ${i}
done

結果(例):

(出力なし)

サインイン用ユーザーへのスイッチバック

  • AWSマネジメントコンソールのメニュバー右上のIAMロール名をクリックします。

  • "スイッチバック"(ボタン)をクリックします。

    • 右上の表示が"handson-cli-signin-user@XXXX-XXXX-XXXX"になっていることを確認します。

3.4. サインイン用ユーザーのサインアウト

アンケート

今後の参考にするため、本手順についてご意見・コメントをお願いします。

注釈

  • 必須項目はありません。お気軽にご回答ください。

  • 内容が違えばお一人何回回答していただいても問題ありません。

  • はまりどころや誤字・脱字などの修正のご指摘もお待ちしています。

注釈

このアンケートシステムはS3 + Cognitoで構築しています。