Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Arbeiten mit IAM-Richtlinien mit AWS SDK for PHP Version 3
Sie erteilen einem Benutzer Berechtigungen, indem Sie eine Richtlinie erstellen. Eine Richtlinie ist ein Dokument, in dem die Aktionen aufgeführt sind, die ein Benutzer ausführen kann, sowie die Ressourcen, auf die sich diese Aktionen auswirken können. Standardmäßig werden alle Aktionen oder Ressourcen, die nicht explizit erlaubt sind, verweigert. Richtlinien können erstellt und an Benutzer, Benutzergruppen, von Benutzern übernommene Rollen und Ressourcen angehängt werden.
In den nachstehenden Beispielen wird Folgendes veranschaulicht:
-
Erstellen Sie eine verwaltete Richtlinie mit CreatePolicy.
-
Fügen Sie eine Richtlinie mit einer Rolle anAttachRolePolicy.
-
Fügen Sie einem Benutzer mithilfe von eine Richtlinie anAttachUserPolicy.
-
Fügen Sie eine Richtlinie mithilfe von an eine Gruppe anAttachGroupPolicy.
-
Entfernen Sie eine Rollenrichtlinie mit DetachRolePolicy.
-
Entfernen Sie eine Benutzerrichtlinie mit DetachUserPolicy.
-
Entfernen Sie eine Gruppenrichtlinie mit DetachGroupPolicy.
-
Löschen Sie eine verwaltete Richtlinie mit DeletePolicy.
-
Löschen Sie eine Rollenrichtlinie mit DeleteRolePolicy.
-
Löschen Sie eine Benutzerrichtlinie mit DeleteUserPolicy.
-
Löschen Sie eine Gruppenrichtlinie mit DeleteGroupPolicy.
Der gesamte Beispielcode für die AWS SDK for PHP ist hier auf GitHub
Anmeldeinformationen
Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen, wie unter beschriebenAnmeldeinformationen. Importieren Sie dann die AWS SDK for PHP, wie unter beschriebenGrundlegende Verwendung.
Erstellen einer Richtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); $myManagedPolicy = '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "RESOURCE_ARN" }, { "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Resource": "RESOURCE_ARN" } ] }'; try { $result = $client->createPolicy(array( // PolicyName is required 'PolicyName' => 'myDynamoDBPolicy', // PolicyDocument is required 'PolicyDocument' => $myManagedPolicy )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Anfügen einer Richtlinie an eine Rolle
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); $roleName = 'ROLE_NAME'; $policyName = 'AmazonDynamoDBFullAccess'; $policyArn = 'arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess'; try { $attachedRolePolicies = $client->getIterator('ListAttachedRolePolicies', ([ 'RoleName' => $roleName, ])); if (count($attachedRolePolicies) > 0) { foreach ($attachedRolePolicies as $attachedRolePolicy) { if ($attachedRolePolicy['PolicyName'] == $policyName) { echo $policyName . " is already attached to this role. \n"; exit(); } } } $result = $client->attachRolePolicy(array( // RoleName is required 'RoleName' => $roleName, // PolicyArn is required 'PolicyArn' => $policyArn )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Anfügen einer Richtlinie an einen Benutzer
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); $userName = 'USER_NAME'; $policyName = 'AmazonDynamoDBFullAccess'; $policyArn = 'arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess'; try { $attachedUserPolicies = $client->getIterator('ListAttachedUserPolicies', ([ 'UserName' => $userName, ])); if (count($attachedUserPolicies) > 0) { foreach ($attachedUserPolicies as $attachedUserPolicy) { if ($attachedUserPolicy['PolicyName'] == $policyName) { echo $policyName . " is already attached to this role. \n"; exit(); } } } $result = $client->attachUserPolicy(array( // UserName is required 'UserName' => $userName, // PolicyArn is required 'PolicyArn' => $policyArn, )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Anfügen einer Richtlinie an eine Gruppe
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->attachGroupPolicy(array( // GroupName is required 'GroupName' => 'string', // PolicyArn is required 'PolicyArn' => 'string', )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Trennen einer Benutzerrichtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->detachUserPolicy([ // UserName is required 'UserName' => 'string', // PolicyArn is required 'PolicyArn' => 'string', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Trennen einer Gruppenrichtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->detachGroupPolicy([ // GroupName is required 'GroupName' => 'string', // PolicyArn is required 'PolicyArn' => 'string', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Löschen Sie eine Richtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->deletePolicy(array( // PolicyArn is required 'PolicyArn' => 'string' )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Löschen Sie eine Rollenrichtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->deleteRolePolicy([ // RoleName is required 'RoleName' => 'string', // PolicyName is required 'PolicyName' => 'string' ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Löschen einer Benutzerrichtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->deleteUserPolicy([ // UserName is required 'UserName' => 'string', // PolicyName is required 'PolicyName' => 'string', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Löschen einer Gruppenrichtlinie
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;
Beispiel-Code
$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->deleteGroupPolicy(array( // GroupName is required 'GroupName' => 'string', // PolicyName is required 'PolicyName' => 'string', )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }