AWS SDK 또는 CLI로 PutRolePolicy 사용하기

AWS SDK 또는 CLI로 PutRolePolicy 사용하기

다음 코드 예시는 PutRolePolicy을(를) 사용하는 방법을 보여줘요.

액션 예시는 더 큰 프로그램에서 발췌한 코드 조각이라, 실제 프로그램 컨텍스트 안에서 실행돼야 해요.

출처: 문서

본문

SDK for .NET

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

    /// <summary>
    /// Update the inline policy document embedded in a role.
    /// </summary>
    /// <param name="policyName">The name of the policy to embed.</param>
    /// <param name="roleName">The name of the role to update.</param>
    /// <param name="policyDocument">The policy document that defines the role.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> PutRolePolicyAsync(string policyName, string roleName, string policyDocument)

{

        var request = new PutRolePolicyRequest

{

            PolicyName = policyName,
            RoleName = roleName,
            PolicyDocument = policyDocument
        };

        var response = await _IAMService.PutRolePolicyAsync(request);
        return response.HttpStatusCode == HttpStatusCode.OK;
    }

API 상세 내용은 AWS SDK for .NET API Reference의 PutRolePolicy 문서를 참고하세요.

SDK for C++

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

bool AwsDoc::IAM::putRolePolicy(
        const Aws::String &roleName,
        const Aws::String &policyName,
        const Aws::String &policyDocument,
        const Aws::Client::ClientConfiguration &clientConfig)
{

    Aws::IAM::IAMClient iamClient(clientConfig);
    Aws::IAM::Model::PutRolePolicyRequest request;

    request.SetRoleName(roleName);
    request.SetPolicyName(policyName);
    request.SetPolicyDocument(policyDocument);

    Aws::IAM::Model::PutRolePolicyOutcome outcome = iamClient.PutRolePolicy(request);
    if (!outcome.IsSuccess())
{

        std::cerr << "Error putting policy on role. " <<
                  outcome.GetError().GetMessage() << std::endl;
    }
    else
{

        std::cout << "Successfully put the role policy." << std::endl;
    }

    return outcome.IsSuccess();
}

API 상세 내용은 AWS SDK for C++ API Reference의 PutRolePolicy 문서를 참고하세요.

AWS CLI

IAM 역할에 권한 정책을 연결하려면

다음 put-role-policy 명령은 Test-Role 역할에 권한 정책을 추가해요.

aws iam put-role-policy \
    --role-name
Test-Role
 \
    --policy-name
ExamplePolicy
 \
    --policy-document
file://AdminPolicy.json

이 명령은 출력이 없어요.

정책은 AdminPolicy.json 파일에 JSON 문서로 정의돼 있어요. (파일 이름과 확장자는 의미가 없어요.)

역할에 트러스트 정책을 연결하려면 update-assume-role-policy 명령을 사용하면 돼요.

더 자세한 내용은 AWS IAM 사용자 가이드의 '역할 수정' 문서를 참고하세요.

API 상세 내용은 AWS CLI Command Reference의 PutRolePolicy 문서를 참고하세요.

SDK for JavaScript (v3)

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

import
{
 PutRolePolicyCommand, IAMClient } from "@aws-sdk/client-iam";

const examplePolicyDocument = JSON.stringify(
{

  Version: "2012-10-17",
  Statement: [

{

      Sid: "VisualEditor0",
      Effect: "Allow",
      Action: [
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions",
        "s3:ListBucket",
        "s3:ListMultipartUploadParts",
      ],
      Resource: "arn:aws:s3:::amzn-s3-demo-bucket",
    },

{

      Sid: "VisualEditor1",
      Effect: "Allow",
      Action: [
        "s3:ListStorageLensConfigurations",
        "s3:ListAccessPointsForObjectLambda",
        "s3:ListAllMyBuckets",
        "s3:ListAccessPoints",
        "s3:ListJobs",
        "s3:ListMultiRegionAccessPoints",
      ],
      Resource: "*",
    },
  ],
});

const client = new IAMClient(
{
});

/**
 *
 * @param
{
string} roleName
 * @param
{
string} policyName
 * @param
{
string} policyDocument
 */
export const putRolePolicy = async (roleName, policyName, policyDocument) =>
{

  const command = new PutRolePolicyCommand(
{

    RoleName: roleName,
    PolicyName: policyName,
    PolicyDocument: policyDocument,
  });

  const response = await client.send(command);
  console.log(response);
  return response;
};

API 상세 내용은 AWS SDK for JavaScript API Reference의 PutRolePolicy 문서를 참고하세요.

Tools for PowerShell V4

예시 1: 이 예시는 FedTesterRolePolicy 인라인 정책을 만들고 FedTesterRole IAM 역할에 포함해요. 같은 이름의 인라인 정책이 이미 있으면 덮어써요. JSON 정책 내용은 FedTesterPolicy.json 파일에서 가져와요. JSON 파일 내용을 제대로 처리하려면 -Raw 파라미터를 꼭 사용해야 해요.

Write-IAMRolePolicy -RoleName FedTesterRole -PolicyName FedTesterRolePolicy -PolicyDocument (Get-Content -Raw FedTesterPolicy.json)

API 상세 내용은 AWS Tools for PowerShell Cmdlet Reference (V4)의 PutRolePolicy 문서를 참고하세요.

Tools for PowerShell V5

예시 1: 이 예시는 FedTesterRolePolicy 인라인 정책을 만들고 FedTesterRole IAM 역할에 포함해요. 같은 이름의 인라인 정책이 이미 있으면 덮어써요. JSON 정책 내용은 FedTesterPolicy.json 파일에서 가져와요. JSON 파일 내용을 제대로 처리하려면 -Raw 파라미터를 꼭 사용해야 해요.

Write-IAMRolePolicy -RoleName FedTesterRole -PolicyName FedTesterRolePolicy -PolicyDocument (Get-Content -Raw FedTesterPolicy.json)

API 상세 내용은 AWS Tools for PowerShell Cmdlet Reference (V5)의 PutRolePolicy 문서를 참고하세요.

더 알아보기 (Learn more)