翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Service Catalog サービスアクション
注記
Service Catalog は、Terraform オープンソース製品のサービスアクションをサポートしていません。
Service Catalog により、コンプライアンスとセキュリティ対策に従いながら、管理メンテナンスとエンドユーザートレーニングを減らすことができます。サービスアクションを使用すると、管理者は、Service Catalog での運用タスクの実行、問題のトラブルシューティング、承認されたコマンドの実行、アクセス許可のリクエストをエンドユーザーに許可できます。AWS Systems Manager ドキュメントを使用して、サービスアクションを定義します。AWS Systems Managerこのドキュメントでは、Amazon EC2 の停止や再起動など、AWSベストプラクティスを実装する定義済みのアクションにアクセスできます。また、カスタムアクションを定義することもできます。
このチュートリアルでは、Amazon EC2 インスタンスの再起動をエンドユーザーに許可します。必要なアクセス許可を追加し、サービスアクションを定義して製品に関連付けたら、プロビジョニングされた製品でそのアクションを使用して、エンドユーザーのエクスペリエンスをテストします。
前提条件
このチュートリアルでは、AmazonAWS のフル管理アクセス許可を持ち、すでに Service Catalog の使用に慣れていて、製品、ポートフォリオ、ユーザーの基本セットを所有していることを前提とします。Service Catalog の使用に慣れていない場合は、このチュートリアルを使用する前に「設定」と「」使用開始 のタスクを完了してください。
トピック
ステップ 1: エンドユーザーのアクセス許可を設定する
エンドユーザーには、特定のサービスアクションを表示および実行するために必要な許可が付与されている必要があります。この例では、Service Catalog のサービスアクション機能にアクセスして Amazon EC2 を再起動するアクセス許可がエンドユーザーに必要です。
アクセス許可を更新するには
-
AWS Identity and Access Management IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
メニューから、ユーザーグループを検索します。
-
エンドユーザーが Service Catalog リソースにアクセスするために使用するグループを選択します。この例では、エンドユーザーグループを選択します。独自の実装では、該当するエンドユーザーによって使用されるグループを選択します。
-
グループの詳細ページの [アクセス許可] タブで、新しいポリシーを作成するか、既存のポリシーを編集します。この例では、グループのService Catalog プロビジョニングおよび終了アクセス許可用に作成されたカスタムポリシーを選択して、既存のポリシーにアクセス許可を追加しています。
-
[ポリシー] ページで、[ポリシーの編集] を選択して必要なアクセス許可を追加します。ビジュアルエディタまたは JSON エディタを使用してポリシーを編集できます。この例では、JSON エディタを使用してアクセス許可を追加します。このチュートリアルでは、以下のアクセス許可をポリシーに追加します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1536341175150", "Action": [ "servicecatalog:ListServiceActionsForProvisioningArtifact", "servicecatalog:ExecuteprovisionedProductServiceAction", "ssm:DescribeDocument", "ssm:GetAutomationExecution", "ssm:StartAutomationExecution", "ssm:StopAutomationExecution", "cloudformation:ListStackResources", "ec2:DescribeInstanceStatus", "ec2:StartInstances", "ec2:StopInstances" ], "Effect": "Allow", "Resource": "*" } ] }
-
ポリシーを編集した後、ポリシーの変更を確認して承認します。これで、エンドユーザーグループのユーザーに、Service Catalog で Amazon EC2 の再起動アクションを実行するアクセス許可が付与されました。
ステップ 2: サービスアクションを作成する
次は、Amazon EC2 インスタンスを再起動するサービスアクションを作成します。
-
https://console.aws.amazon.com/sc/
でService Catalog コンソールを開きます。 -
メニューの [サービスアクション] を選択します。
-
「サービスアクション」 ページで、「アクションの作成」を選択します。
-
[Create action] ページで、サービスアクションを定義する AWS Systems Manager ドキュメントを選択します。Amazon EC2 インスタンスの再起動アクションは AWS Systems Manager ドキュメントによって定義されているため、ドロップダウンメニューのデフォルトのオプションである [Amazon ドキュメント] をそのまま使用します。
-
AWS-RestartEC2 インスタンスアクションを検索して選択します。
-
お客様の環境とチームに合ったアクションの名前と説明を指定します。この説明はエンドユーザーに表示されるため、アクションの内容を理解するのに役立つものを選択してください。
-
[Parameter and target configuration] で、アクションのターゲットとなる SSM ドキュメントパラメータ ([インスタンス ID] など) を選択し、パラメータのターゲットを選択します。パラメータを追加するには、[パラメータの追加] を選択します。
-
[Permissions] で、ロールを選択します。この例では、デフォルトのアクセス許可を使用します。他のアクセス許可の設定も可能で、このページで定義します。
-
設定を確認したら、[アクションの作成] を選択します。
-
次のページでは、アクションが作成されて使用可能になると確認メッセージが表示されます。
ステップ 3: サービスアクションを製品バージョンに関連付ける
アクションを定義したら、そのアクションを製品に関連付ける必要があります。
-
「サービスアクション」ページで、「AWS-RestarteC2Instance」を選択し、「アクションの関連付け」を選択します。
-
[アクションの関連付け] ページで、エンドユーザーによってサービスアクションが実行されるようにする製品を選択します。この例では、[Linux Desktop] を選択します。
-
製品バージョンを選択します。1 番上のチェックボックスを使用して、すべてのバージョンを選択できます。
-
[アクションの関連付け] を選択します。
-
次のページで、確認メッセージが表示されます。
これで、Service Catalog でサービスアクションが作成されました。このチュートリアルの次のステップは、エンドユーザーとしてサービスアクションを使用することです。
ステップ 4: エンドユーザーのエクスペリエンスをテストする
エンドユーザーはプロビジョニングされた製品に対してサービスアクションを実行できます。このチュートリアルの目的上、エンドユーザーには少なくとも 1 つのプロビジョニングされた製品が必要です。プロビジョニングされた製品は、前のステップでサービスアクションに関連付けた製品バージョンから起動する必要があります。
エンドユーザーとしてサービスアクションにアクセスするには
-
Service Catalog コンソールにエンドユーザーとしてログインします。
-
Service Catalog ダッシュボードのナビゲーションペインで、[プロビジョニング済み製品のリスト] を選択します。このリストには、エンドユーザーのアカウント用にプロビジョンされた製品が表示されます。
-
[プロビジョニングされた製品のリスト] ページで、プロビジョニングされたインスタンスを選択します。
-
[プロビジョニング済み製品の詳細] ページで、右上の [アクション] を選択してから、AWS-RestartEC2instance アクションを選択します。
-
カスタムアクションを実行することを確認します。アクションが送信されたという確認メッセージが表示されます。
ステップ 5: によるサービスアクションの管理AWS CloudFormation
AWS CloudFormationサービスアクションとリソースとの関連付けを作成できます。詳細については、AWS CloudFormationユーザーガイドで次を参照してください。
注記
AWS CloudFormationリソースとのサービスアクション関連付けを管理する場合は、またはを使用してサービスアクションを追加または削除しないでくださいAWS Management Console。AWS Command Line Interfaceスタックの更新を実行すると、AWS CloudFormation外部で行われたサービスアクションへの変更はすべて置き換えられます。
ステップ 6: 問題のトラブルシューティングを行う
サービスアクションの実行が失敗した場合、[プロビジョニング済み製品] ページのサービスアクション実行イベントの [出力] セクションにエラーメッセージが表示されます。以下に、よくあるエラーメッセージの説明を示します。
注記
エラーメッセージの正確なテキストは変更される可能性があるため、いずれの種類の自動化プロセスでも使用しないでください。
内部エラー
Service Catalog で内部エラーが発生しました。あとでもう一度試してみてください。問題が解決しない場合は、カスタマーサポートまでお問い合わせください。
StartAutomationExecution オペレーションを呼び出すときにエラーが発生しました (ThrottlingException)
サービスアクションの実行が SSM などのバックエンドサービスによって制限されました。
ロールの引き受け中にアクセスが拒否されました
Service Catalog は、サービスアクション定義で指定されたロールを引き受けることができませんでした。servicecatalog.amazonaws.com プリンシパル、または servicecatalog.us-east-1.amazonaws.com などのリージョン別プリンシパルがロールの信頼ポリシーで許可リストに登録されていることを確認してください。
StartAutomationExecution オペレーションを呼び出すときにエラーが発生しました (AccessDeniedException): ユーザーには、リソースに対する ssm:StartAutomationExecution を実行する許可がありません。
サービスアクション定義で指定されたロールに、ssm: を起動する許可がありませんStartAutomationExecution。ロールに適切な SSM アクセス許可があることを確認してください。
プロビジョニング済み製品に「タイプ TargetType
」の付いたリソースが見つかりません
プロビジョニングされた製品には、:: EC2:AWS: Instance など、SSM ドキュメントで指定されたターゲットタイプと一致するリソースは含まれていません。プロビジョニングされた製品でこれらのリソースを確認するか、ドキュメントが正しいことを確認してください。
その名前のドキュメントは存在しません
サービスアクション定義で指定されたドキュメントが存在しません。
SSM オートメーションドキュメントの定義の取得に失敗しました
指定したドキュメントの定義を取得しようとしたときに、Service Catalog が SSM からの不明な例外を検出しました。
ロールの認証情報の取得に失敗しました
Service Catalog は指定されたロールの引き受け中に不明なエラーを検出しました。
パラメータの値 "InvalidValue
" が {ValidValue1}、{ValidValue2}
に見つかりません
SSM に渡されたパラメータ値がドキュメントの許容値のリストにありません。渡されたパラメータが有効であることを確認し、再試行してください。
パラメータタイプエラーです。入力された値は有効な文字列ではありません。ParameterName
SSM に渡されたパラメータの値がドキュメントのこのタイプでは無効です。
パラメータがサービスアクション定義で定義されていません
サービスアクション定義で定義されていないパラメータが Service Catalog に渡されました。使用できるのは、サービスアクション定義で定義されたパラメータのみです。
アクションを実行/キャンセルしているときにステップが失敗します。Error message.
診断の詳細については、「オートメーションサービストラブルシューティングガイド」を参照してください。
SSM オートメーションドキュメントのステップが失敗しました。さらにトラブルシューティングするには、メッセージ内のエラーを参照してください。
パラメータに次の値は、プロビジョニングされた製品に含まれていないため使用できません。InvalidResourceId
プロビジョニングされた製品にないリソースに対するアクションをユーザーがリクエストしました。
TargetType SSM ドキュメントドキュメントドキュメントドキュメントでは定義されていません
サービスアクションでは、SSM TargetType オートメーションドキュメントを定義する必要があります。SSM オートメーションドキュメントを確認してください。