프로비저닝된 제품 관리를 위한 정책 예제 - AWS Service Catalog

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

프로비저닝된 제품 관리를 위한 정책 예제

조직의 보안 요구 사항을 충족할 수 있도록 사용자 지정 정책을 생성할 수 있습니다. 다음 예제는 사용자, 역할 및 계정 수준에 대한 지원으로 작업별 액세스 수준을 사용자 지정하는 방법을 설명합니다. 사용자에게 이들이 로그인한 계정 또는 역할로 해당 사용자가 만든 프로비저닝된 제품에 대해서만, 또는 다른 사람이 만든 프로비저닝된 제품에 대해서도 보고, 업데이트하고, 종료하고, 관리할 권한을 부여할 수 있습니다. 이 액세스는 계층적입니다. — 계정 수준 액세스를 부여하면 역할 수준 액세스 및 사용자 수준 액세스도 부여하지만, 역할 수준 액세스를 추가하면 사용자 수준 액세스를 부여하지만 계정 수준 액세스는 부여하지 않습니다. Condition 블록을 사용하여 정책 JSON에서 이를 accountLevel, roleLevel 또는 userLevel로 지정할 수 있습니다.

이러한 예제는 AWS Service Catalog API 쓰기 작업 UpdateProvisionedProductTerminateProvisionedProduct, 읽기 작업 DescribeRecord, ScanProvisionedProducts 및 ListRecordHistory의 액세스 레벨에도 적용됩니다. ScanProvisionedProductsListRecordHistory API 작업은 AccessLevelFilterKey를 입력으로 사용하며, 이 키의 값은 여기에서 논의한 Condition 블록 수준에 해당합니다(accountLevel은 "계정", AccessLevelFilterKey은 "역할", roleLevel은 "사용자"의 userLevel 값임). 자세한 정보는 AWS Service Catalog 개발자 안내서 섹션을 참조하십시오.

예: 프로비저닝된 제품에 대한 모든 관리자 액세스

다음 정책은 계정 수준에서 카탈로그 내의 프로비저닝된 제품 및 레코드에 대한 모든 읽기 및 쓰기 권한을 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicecatalog:*" ], "Resource":"*", "Condition": { "StringEquals": { "servicecatalog:accountLevel": "self" } } } ] }

이 정책은 다음 정책과 기능적으로 동일합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicecatalog:*" ], "Resource":"*" } ] }

다시 말해 AWS Service Catalog의 어떤 정책에도 Condition 블록을 지정하지 않으면 "servicecatalog:accountLevel" 액세스를 지정하는 것과 동일한 것으로 처리됩니다. accountLevel 액세스에는 roleLeveluserLevel 액세스가 포함되어 있습니다.

예: 프로비저닝된 제품에 대한 최종 사용자 액세스

다음 정책은 읽기 및 쓰기 작업에 대한 액세스를 현재 사용자가 만든 프로비저닝된 제품 또는 연결된 레코드로만 제한합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:DescribeRecord", "servicecatalog:ListLaunchPaths", "servicecatalog:ListRecordHistory", "servicecatalog:ProvisionProduct", "servicecatalog:ScanProvisionedProducts", "servicecatalog:SearchProducts", "servicecatalog:TerminateProvisionedProduct", "servicecatalog:UpdateProvisionedProduct" ], "Resource": "*", "Condition": { "StringEquals": { "servicecatalog:userLevel": "self" } } } ] }

예: 프로비저닝된 제품에 대한 부분 관리자 액세스

아래 두 정책은 모두 동일한 사용자에게 적용할 경우 전체 읽기 전용 권한 및 제한된 쓰기 권한을 제공하여 "부분 관리자 액세스" 유형이라고 할 수 있는 권한을 허용합니다. 이는 사용자가 해당 카탈로그의 계정 내의 프로비저닝된 모든 제품 또는 연결된 레코드를 볼 수 있지만, 해당 사용자가 소유하지 않은 프로비저닝된 모든 제품 또는 레코드에 대한 작업은 수행할 수 없음을 뜻합니다.

첫 번째 정책은 현재 사용자가 만든 프로비저닝된 제품에 대한 쓰기 작업 권한을 허용하지만, 다른 사람이 만든 프로비저닝된 제품에 대해서는 허용하지 않습니다. 두 번째 정책은 모든 사람(사용자, 역할 또는 계정)이 만든 프로비저닝된 제품에 대한 모든 읽기 작업 권한을 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ListLaunchPaths", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:TerminateProvisionedProduct", "servicecatalog:UpdateProvisionedProduct" ], "Resource": "*", "Condition": { "StringEquals": { "servicecatalog:userLevel": "self" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "servicecatalog:DescribeRecord", "servicecatalog:ListRecordHistory", "servicecatalog:ScanProvisionedProducts" ], "Resource": "*", "Condition": { "StringEquals": { "servicecatalog:accountLevel": "self" } } } ] }