AWS Service Catalog の起動制約 - AWS Service Catalog

AWS Service Catalog の起動制約

起動制約は、エンドユーザーが製品を起動するときに AWS Service Catalog が引き受ける AWS Identity and Access Management (IAM) ロールを指定します。IAM ロールは、IAM ユーザーや AWS のサービスが、AWS のサービスを使用するために一時的に引き受けることができるアクセス権限のコレクションです。簡単な例については、「ステップ 6: IAM ロールを割り当てる起動制約を追加する」を参照してください。

起動制約は、ポートフォリオ (製品 - ポートフォリオの関連付け) 内の製品に適用されます。起動制約は、ポートフォリオレベルやすべてのポートフォリオにわたる製品に対して適用されません。起動の制約をポートフォリオ内のすべての製品に関連付けるには、起動の制約を各製品に個別に適用する必要があります。

起動制約がない場合、エンドユーザーは各自の IAM 認証情報を使用して製品を起動し、管理する必要があります。そのためには、AWS CloudFormation、製品で使用される AWS のサービス、および AWS Service Catalog のアクセス許可が必要です。起動ロールを使用することにより、エンドユーザーのアクセス権限をその製品に必要な最小限のものに制限することができます。エンドユーザーのアクセス権限の管理の詳細については、「AWS Service Catalog の Identity and Access Management」を参照してください。

IAM ロールを作成して割り当てるには、以下の IAM 管理者権限が必要です。

  • iam:CreateRole

  • iam:PutRolePolicy

  • iam:PassRole

  • iam:Get*

  • iam:List*

起動ロールの設定

起動の制約として製品に割り当てる IAM ロールには、以下を使用するアクセス権限が必要です。

  • AWS CloudFormation

  • 製品用の AWS CloudFormation テンプレートのサービス。

  • AWS CloudFormation の Amazon S3 テンプレートへの読み取りアクセス

IAM ロールは AWS Service Catalog との信頼関係も必要になります。この信頼関係は、以下の手順でロールタイプとして AWS Service Catalog を選択して割り当てます。信頼関係により、AWS Service Catalog は起動プロセス中にロールを引き受けてリソースを作成することができます。

注記

servicecatalog:ProvisionProductservicecatalog:TerminateProductservicecatalog:UpdateProduct のアクセス権限を起動ロールで割り当てることはできません。「Amazon Service Catalog のエンドユーザーにアクセス許可を付与」セクションのインラインポリシーステップで示すように、IAM ロールを使用する必要があります。

起動ロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ロールを選択します。

  3. [Create New Role] を選択します。

  4. ロール名を入力し、[Next Step] を選択します。

  5. [AWS Service Catalog] の隣の [AWSサービスロール] で、[選択] を選択します。

    [AWS Service Catalog] の横の [AWS サービスロール] で、[選択] を選択します。

  6. [Attach Policy] ページで、[Next Step] を選択します。

  7. ロールを作成するには、[Create Role] を選択します。

ポリシーを新しいロールにアタッチするには

  1. 作成したロールを選択して、[role details] ページを表示します。

  2. [Permissions] タブを選択して、[Inline Policies] セクションを展開します。次に、[click here] を選択します。

  3. [Custom Policy] を選択し、[Select] を選択します。

  4. ポリシーの名前を入力し、[Policy Document] エディタに次のように貼り付けます。

    "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } } ] }
    注記

    起動制約の起動ロールを設定する場合は、"s3:ExistingObjectTag/servicecatalog:provisioning":"true" の文字列を使用する必要があります。

  5. 製品で使用する追加のサービスごとに、ポリシーに行を追加します。例えば、Amazon Relational Database Service (Amazon RDS) のアクセス許可を追加するには、Action リストの最後の行の末尾にカンマを入力し、次の行を追加します。

    "rds:*"
  6. [Apply Policy] を選択します。

起動制約の適用

起動ロールを設定したら、起動制約として製品にロールを割り当てます。このアクションにより、エンドユーザーが製品を起動した際にロールを引き受けるよう AWS Service Catalog に指示します。

製品にロールに割り当てるには

  1. AWS Service Catalog コンソールを開きます (https://console.aws.amazon.com/servicecatalog/)。

  2. 製品を含むポートフォリオを選択します。

  3. [制約] タブを選択して、[Create constraint (制約の作成)] を選択します。

  4. [製品] から製品を選択し、[制約タイプ] の [起動] を選択します。[続行] をクリックします。

  5. [起動の制約] セクションでは、アカウントから IAM ロールを選択して IAM ロール ARN を入力するか、ロール名を入力できます。

    ロール名を指定すると、アカウントが起動制約を使用する場合、アカウントは IAM ロールのその名前を使用します。このアプローチにより、起動ロールの制約をアカウントに依存しないようにできます。共有アカウントごとに作成するリソースを減らすことができます。

    注記

    指定されたロール名は、起動制約を作成したアカウントと、この起動制約を使用して製品を起動するユーザーのアカウントに存在している必要があります。

  6. IAM ロールを指定したら、[作成] を選択します。

起動制約の検証

AWS Service Catalog がロールを使用して製品を起動し、プロビジョニング済み製品を正常に作成することを検証するには、AWS Service Catalog コンソールから製品を起動します。ユーザーに公開する前に制約をテストするには、同じ製品を含むテストポートフォリオを作成し、そのポートフォリオで制約をテストします。

製品を起動するには

  1. AWS Service Catalog コンソールのメニューで、[Service Catalog]、[エンドユーザー] の順に選択します。

  2. 製品を選択して、[製品の詳細] ページを開きます。[起動オプション] テーブルで、ロールの Amazon リソースネーム (ARN) が表示されることを確認します。

  3. [製品の起動] を選択します。

  4. 起動手順を続行して必要な情報を入力します。

  5. 製品が正常に起動することを確認します。